-1

我有两个 JTextFields 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())和相同的看起来相等,但打印出错误消息?

4

3 回答 3

1

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

尝试更像......

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

...反而

于 2013-10-02T07:20:24.887 回答
1

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

if (txf1.getText().trim().equals(txf2.getText().trim())) {
于 2013-10-02T07:29:23.650 回答
0

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

你的代码应该是这样的:

if (txf1.getText().equals(txf2.getText())) {
  System.out.println("Equal");
} else {
  System.out.println("Error");
}
于 2013-10-02T07:20:10.467 回答