【问题标题】:JLabel not comparing to string [duplicate]JLabel 不与字符串比较 [重复]
【发布时间】:2013-11-14 23:46:32
【问题描述】:

我将检查 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 如果没有其他选项适合,如果有一个好的标准可以遵循。

【问题讨论】:

  • 作为重复关闭:不要使用== 来比较字符串。请改用equals(...)equalsIgnoreCase(...) String 方法。
  • @nhgrif:这是您简单投票时的自动消息。
  • @JeroenVannevel 我知道。

标签: java string if-statement compare jlabel


【解决方案1】:

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

Java 中的Strings 与String#equals 而非== 进行比较

例如,

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

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

查看Strings 线索了解更多详情

【讨论】:

    猜你喜欢
    • 2012-01-15
    • 1970-01-01
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 2015-12-15
    • 2011-10-19
    • 2012-11-27
    相关资源
    最近更新 更多