【问题标题】:Java Check If Two JTextField Has The Same Content [duplicate]Java检查两个JTextField是否具有相同的内容[重复]
【发布时间】:2013-10-02 07:18:39
【问题描述】:

我有两个 JTextField txf1 和 txf2。

在他们两个中我输入了相同的内容(例如:“test”)。

我做了if语句:

if (txf1.getText() == txf2.getText()) {
    System.out.println("Equal");
} else {
    System.out.println("Error");
}

为什么会打印出错误信息?我什至做了一个System.out.println(txf1.getText())System.out.println(txf2.getText()),看起来一样,但打印出错误消息?

【问题讨论】:

    标签: java swing jtextfield gettext


    【解决方案1】:

    Java 中的字符串比较是使用String#equals 完成的,使用== 意味着您正在比较对象的内存引用,当您认为它应该返回时,它并不总是返回true

    尝试类似的东西......

    if (txf1.getText().equals(txf2.getText())) {
    

    ...改为

    【讨论】:

      【解决方案2】:

      您也可以使用这种良好的做法来提高您的文本框条目的效率。

      if (txf1.getText().trim().equals(txf2.getText().trim())) {
      

      【讨论】:

        【解决方案3】:

        使用equals 方法比较字符串。 == 只比较对象引用。 equals 比较字符串的实际内容。

        你的代码应该是这样的:

        if (txf1.getText().equals(txf2.getText())) {
          System.out.println("Equal");
        } else {
          System.out.println("Error");
        }
        

        【讨论】:

          猜你喜欢
          • 2012-03-29
          • 2014-11-05
          • 1970-01-01
          • 2016-04-11
          • 1970-01-01
          • 2021-12-22
          • 2012-06-10
          • 1970-01-01
          • 2019-07-12
          相关资源
          最近更新 更多