我正在尝试用 Java 为我的大学类(class)编写一个简单的刽子手游戏。由于某种原因, if 语句永远不会返回,似乎认为被比较的两个子字符串是相等的。这两个打印语句表明,从所有权利来看,两者应该是相等的。
public String guessLetter(String letter)
{
String blanks = "";
String theWord="FOO";
for(int i=0; i<=theWord.length()-1; i++)
{
System.out.print(letter.substring(0,1).toUpperCase());
System.out.print(theWord.substring(i,i+1)+ "\n");
if((letter.substring(0,1).toUpperCase())==(theWord.substring(i,i+1)))
{
blanks = blanks + theWord.substring(i,i+1);
}
else
{
blanks = blanks + "___ ";
}
}
return blanks;
}
编辑 - 正如很多人指出的那样,在比较字符串时,必须使用 equals 方法而不是 ==。我当时并没有意识到。
最佳答案
您正在比较字符串,因此请使用 "String".equals()
不要使用 ==
像这样使用:
if((letter.substring(0,1).toUpperCase()).equals(theWord.substring(i,i+1)))
关于java - 为什么本例中 "T"不等于 "T"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21931531/