2016-04-25 32 views
1

我试图比较用户输入的字符到随机生成的单词,看它是否匹配... 我可以用什么来比较它们?如何将字符与单词中的字符进行比较? (Java)

if (playerChoice.equals(g.originalWord.charAt(7))) { // 
     g.revealHiddenLetter(); 
    }  
    else { 
     System.out.println(g.guessThisWord); 
     guesses--;// if player is wrong they lose a guess 
     System.out.println("Guesses Left: " + guesses); 
    } 
+0

可以使用'substring'或'charAt'方法来比较字符。 'substring'返回一个'String','charAt'返回一个'char'。 – Logan

+0

您可以使用String.indexOf来查找字符串中的字母索引,如果找不到则查找-1。 –

回答

0

迭代中隐藏的文字字符,你可以使用的方法,如:

private boolean charInWord(char playerChoice) { 
    for(int i = 0; i < originalWord.length(); i++) { 
      if(originalWord.charAt(i) == playerChoice) { 
       return true; 
      } 
     } 
    return false; 
} 

如果字母隐藏的字中存在这将返回true。

1

比较字符使用==符号不是equals()方法,因为你想做的事,可以achived什么如下java的字符被表示为integers.So:

if (playerChoice == g.originalWord.charAt(7)) { // 
    g.revealHiddenLetter(); 
}  
else { 
    System.out.println(g.guessThisWord); 
    guesses--;// if player is wrong they lose a guess 
    System.out.println("Guesses Left: " + guesses); 
} 
+1

重要的是要注意,如果您使用整数类型对字符进行评估,字符只能转换为整数。你可以在这里使用'=='的原因是char是一个原始类型,不是因为它的实现。 – flakes

+0

感谢您的更正。 – theVoid

0

一种更容易解决此问题的方法只是将字符转换为长度为1的字符串并使用现有的String.contains()方法

char guess = 'h'; 
String originalWord = "hello"; 
System.out.println(originalWord.contains(Character.toString(guess))); 
相关问题