我有两个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())
,看起来相同,但打印出错误信息?
答案 0 :(得分:1)
Java中的字符串比较是使用String#equals
完成的,使用==
表示您正在比较对象的内存引用,当您认为它应该时,它们不会总是返回true
。
尝试更像......
if (txf1.getText().equals(txf2.getText())) {
...代替
答案 1 :(得分:1)
此外,您可以使用此良好做法,使您的文本框条目有效。
if (txf1.getText().trim().equals(txf2.getText().trim())) {
答案 2 :(得分:0)
使用equals方法比较字符串。 ==
仅比较对象引用。 equals
比较字符串的实际内容。
您的代码应该是这样的:
if (txf1.getText().equals(txf2.getText())) {
System.out.println("Equal");
} else {
System.out.println("Error");
}