0

我将检查 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")给出错误,而System.out.println(name.getText() + " " + "Dexter")给出“Dexter Dexter”。怎么了?

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

4

1 回答 1

1

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

StringJava 中的 s 与String#equalsnot进行比较==

例如,

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

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

查看字符串跟踪以获取更多详细信息

于 2013-11-14T23:48:03.547 回答