java字符串上的==运算符有什么问题

时间:2013-05-09 13:01:21

标签: java string

我有,
 String str1 = "StringA";
 String str2 = "StringA";

现在,我做

(str1 == str2)

有时它与字符串不匹配并返回false

str1.equals(str2)始终返回true

我在这里缺少什么? 我不能总是使用equals,因为我的String也可以为空。

谢谢!

2 个答案:

答案 0 :(得分:3)

==比较引用而不是内容

要比较您需要使用的字符串String#equals

.equals(); //If you  consider the case
.equalsIgnoreCase(); //If you not consider the case  

答案 1 :(得分:1)

==比较确切的值。因此,它会比较primitive值是否相同,

.equals()调用comparison的{​​{1}}方法,该方法将比较引用指向的实际对象。对于字符串,它会比较每个字符以查看它们是否为objects

在此处阅读更多内容: