equals with strings 产生错误的结果

equals with strings is producing wrong results

我在 class 中有一个简单的函数,用于检查两个字符串是否相等(这是一个刽子手游戏)。代码很简单,有两个class个变量:

    private String hiddenWord;
    private String dashWord;



public void compareGuessWord(String clientGuess) {
        if (clientGuess.length() > 1) {
                System.out.println("Kollar om dashord: " + dashWord);
                System.out.println("Kollar om hidden: " + this.hiddenWord);
                System.out.println("Kollar om guess:" + clientGuess);

            if (clientGuess.equalsIgnoreCase(this.hiddenWord));
            {
                this.dashWord = clientGuess;  
            }
                System.out.println("SECOND Kollar om guess:" + clientGuess);
                System.out.println("SECOND Kollar om dashord: " + dashWord);
                System.out.println("SECOND Kollar om hidden: " + hiddenWord);
        }
    }

这是控制台输出,您可以看到它是 运行 内部的,即使它们不匹配。 problem

if (clientGuess.equalsIgnoreCase(this.hiddenWord)); 你的 if 除了检查什么都不做。删除它后面的 ;

在你的 if 条件中有';'这样如果不起作用

if (clientGuess.equalsIgnoreCase(this.hiddenWord))**;**
            {
                this.dashWord = clientGuess;  
            }

编译器认为它是一个普通语句,所以去掉分号“;”并检查

您的 If 语句正在终止,因为您在末尾放置了分号

if (clientGuess.equalsIgnoreCase(this.hiddenWord));

去掉分号就可以了