This question already has answers here:
How do I compare strings in Java?
(23个答案)
6年前关闭。
每次运行此程序时,我都会得到错误的结果,我觉得凌晨4点多睁一双眼睛会有所帮助。有人可以帮我找到大括号或括号的位置吗,因为我一生都找不到。
(23个答案)
6年前关闭。
每次运行此程序时,我都会得到错误的结果,我觉得凌晨4点多睁一双眼睛会有所帮助。有人可以帮我找到大括号或括号的位置吗,因为我一生都找不到。
System.out.println("Please enter your guess") ;
userGuess = kbd.next() ;
if( userGuess != "a" || userGuess != "b" || userGuess != "c" ||
userGuess != "d" || userGuess != "e" || userGuess != "f" || userGuess != "g" ||
userGuess != "h" || userGuess != "i" || userGuess != "j" || userGuess != "k" ||
userGuess != "l" || userGuess != "m" || userGuess != "n" || userGuess != "o" ||
userGuess != "p" || userGuess != "q" || userGuess != "r" || userGuess != "s" ||
userGuess != "t" || userGuess != "u" || userGuess != "v" || userGuess != "w" ||
userGuess != "x" || userGuess != "y" || userGuess != "z" || userGuess!= "A" ||
userGuess != "B" || userGuess != "C" || userGuess != "D" || userGuess != "E" ||
userGuess != "F" || userGuess != "G" ||userGuess != "H" || userGuess != "I" ||
userGuess != "J" || userGuess != "K" ||userGuess != "L" || userGuess != "M" ||
userGuess != "N" || userGuess != "O" || userGuess != "P" || userGuess != "Q" ||
userGuess != "R" || userGuess != "S" || userGuess != "T" || userGuess != "U" ||
userGuess != "V" || userGuess != "W" || userGuess != "X" || userGuess != "Y" ||
userGuess != "Z" ) {
System.out.println("Invalid character, please enter your guess") ;
}userGuess = kbd.next() ;
最佳答案
您需要将==
更改为equals
以比较String(和任何其他对象)的值。
同样,您在逻辑上也有问题,因为对于所有字符userGuess != "a" || userGuess != "b"
都是正确的,因为如果某项是a
则不是b
,因此这些条件之一将始终为真。
您可能需要将||
更改为&&
或使用适当的工具(例如正则表达式)或Character类中的方法(例如Character.isLetter
)。
10-02 06:30