java - 为什么本例中 "T"不等于 "T"?

标签 java substring

我正在尝试用 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/

相关文章:

java - 在 OSGi 中,如何优雅地处理初始化异常?

java - 使用较旧的 java 版本运行 swing 应用程序

java undefined reference `main'收集2 : ld returned 1 exit status

mysql - 查询输入的子字符串是字段的一部分

mysql - substring_index 从右侧跳过分隔符

java - 两个锁有可能发生死锁吗?

java - 您会如何为体育节目编写深度图和阵容?

javascript - 使用javascript根据第二次出现的分隔符拆分字符串

python - 具有公差的最频繁子串

c - 更好地优化搜索字符串的方式