This question already has answers here:
How do I compare strings in Java?

(23个答案)


6年前关闭。





我要检查JLabel是否与电视节目的名称相同。

我有代码

public int lastEp() {
    if(name.getText() == "Dexter") {
        switch (season) {
        case 1:
            return 12;
        case 2:
            return 12;
        // etc.
        }
    }
    return -1;
}


我已经在控制台中检查了从name.getText()中获得的内容,并且控制台打印了“ Dexter”。
我的if语句仍然不会返回true。
System.out.println(name.getText() == "Dexter")给出false,而System.out.println(name.getText() + " " + "Dexter")给出“ Dexter Dexter”。
怎么了?

还有奖金问题,如果有人知道我应该返回什么,而不是-1,如果没有其他选择适合的话,如果有一个很好的标准可以遵循。

最佳答案

这是一个扩展评论,应该关闭问题

将Java中的StringString#equals而不是==

例如,

"Dexter".equals(name.getText())


您当前正在比较对象(内存)引用,引用很少会相等

查看Strings跟踪以获取更多详细信息

10-08 16:01