我正在尝试用Java为我的大学课写一个简单的刽子手游戏。由于某种原因,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方法而不是==。我没有意识到。
答案 0 :(得分:2)
您正在比较字符串,因此请使用"String".equals()
不要使用==
像这样使用:
if((letter.substring(0,1).toUpperCase()).equals(theWord.substring(i,i+1)))
答案 1 :(得分:1)
if((letter.substring(0,1).toUpperCase())==(theWord.substring(i,i+1)))
\这对字符串来说是错误的
比较字符串时,您应使用.equals
或.equalsIgnorecase
if((letter.substring(0,1).toUpperCase()).equals(theWord.substring(i,i+1)))
ans也检查difference between == and .equals in java在那里给出了很好的解释。
答案 2 :(得分:1)
对于字符串==
您必须使用string1.equals(string2)
功能