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));
去掉分号就可以了
我在 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));
去掉分号就可以了