Java 为什么indexof不起作用?

Java 为什么indexof不起作用?,java,string,char,indexof,Java,String,Char,Indexof,我有一个刽子手游戏的程序,indexof不适合我?在30号线上。我一直想弄明白,但我不能。if(猜词。indexOf(字母)>=0)。我会继续努力找出我做错了什么 import java.io.PrintStream; import java.util.Scanner; public class Hangman { public static void main(String[] args) { String[] words = { "write", "program", "that", "r

我有一个刽子手游戏的程序,indexof不适合我?在30号线上。我一直想弄明白,但我不能。if(猜词。indexOf(字母)>=0)。我会继续努力找出我做错了什么

import java.io.PrintStream;
import java.util.Scanner;

public class Hangman
{
public static void main(String[] args)
{
String[] words = { "write", "program", "that", "receive", "positive" };

Scanner input = new Scanner(System.in);
char anotherGame;
do
{
int index = (int)(Math.random() * words.length);

String hiddenWord = words[index];
StringBuilder guessedWord = new StringBuilder();

for (int i = 0; i < hiddenWord.length(); i++) {
guessedWord.append('*');
}
int numberOfCorrectLettersGuessed = 0; int numberOfMisses = 0;

while (numberOfCorrectLettersGuessed < hiddenWord.length()) {
System.out.print("(Guess) Enter a letter in word " + guessedWord +
" > ");
String s = input.nextLine();
char letter = s.charAt(0);

if (guessedWord.indexOf(letter) >= 0) {
System.out.println("\t" + letter + " is already in the word");
} else if (hiddenWord.indexOf(letter) < 0) {
System.out.println("\t" + letter + " is not in the word");
numberOfMisses++;
} else {
int k = hiddenWord.indexOf(letter);
while (k >= 0) {
guessedWord.setCharAt(k, letter);
numberOfCorrectLettersGuessed++;
k = hiddenWord.indexOf(letter, k + 1);
}
}
}

System.out.println("The word is " + hiddenWord + ". You missed " + numberOfMisses +         (numberOfMisses <= 1 ? " time" : " times"));

System.out.print("Do you want to guess for another word? Enter y or n> ");
anotherGame = input.nextLine().charAt(0);
}while (anotherGame == 'y');
}
}
导入java.io.PrintStream;
导入java.util.Scanner;
公共级刽子手
{
公共静态void main(字符串[]args)
{
String[]words={“write”、“program”、“that”、“receive”、“positive”};
扫描仪输入=新扫描仪(System.in);
另一种游戏;
做
{
int index=(int)(Math.random()*words.length);
字符串hiddenWord=单词[索引];
StringBuilder guessedWord=新建StringBuilder();
for(int i=0;i ");
字符串s=input.nextLine();
字符字母=s.charAt(0);
if(猜测单词索引of(字母)>=0){
System.out.println(“\t”+字母+”已在word中”);
}else if(hiddenWord.indexOf(字母)<0){
System.out.println(“\t”+字母+”不在单词中”);
numberOfMisses++;
}否则{
int k=隐藏字索引(字母);
而(k>=0){
猜词。setCharAt(k,字母);
numberOfCorrectLettersGuessed++;
k=隐藏字索引of(字母,k+1);
}
}
}

System.out.println(“单词是“+hiddenWord+”。您错过了“+numberOfMisses+”(numberOfMisses您正在传递一个
char
字符,其中
String
是预期的。请尝试使用
String.valueOf(letter)
如下:

if (guessedWord.indexOf(String.valueOf(letter)) >= 0) {

// Your code

}
StringBuilder#indexOf(char)
未定义。您可以这样做

if (guessedWord.indexOf(Character.toString(letter)) >= 0) {
StringBuilder没有indexOf(char)方法

guessedWord.indexOf(letter)
应该是

if (guessedWord.toString().indexOf(letter) >= 0) {

错误是什么?“StringBuilder没有indexOf方法。”实际上。