This question already has answers here:
How do I compare strings in Java?

(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