等于字符串会产生错误的结果

时间:2015-11-18 11:08:11

标签: java string if-statement equals

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

    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

3 个答案:

答案 0 :(得分:10)

$ git diff -- *.ts | *js | *.map 您的if (clientGuess.equalsIgnoreCase(this.hiddenWord));除了检查外什么都不做。删除后面的if

答案 1 :(得分:3)

在你的if条件中有&#39 ;;'所以,如果不工作

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

编译器将其视为普通语句,因此请删除分号";"并检查

答案 2 :(得分:2)

你的If语句因为你在分号末添加分号而被终止

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

删除分号,它会正常工作