7

什么时候应该比较Strings 作为对象,什么时候应该使用他们的equals方法?为了确保,我总是使用equals,但这似乎不是很有效。在什么情况下我可以确定它string1 == string2可以安全使用?

谢谢!

4

3 回答 3

16

你应该几乎总是使用equals. 如果出现以下情况,您可以确定这string1 == string2将起作用:

  • 您已经确保您以其他方式获得了不同的值(例如,您正在使用从集合中获取的字符串值,但出于其他原因比较它们)
  • 你知道你正在处理编译时字符串常量
  • 您自己手动插入了字符串

根据我的经验,这种情况并不经常发生。

于 2010-10-07T20:50:22.573 回答
1

根据我对 Java 的了解,string1==string2只有当对这些对象的引用相同时才会如此。看看下面的案例

String string1 = new String("Bob");
String string2 = new String("Bob");

string1 == string2; // false, they are seperate objects
string1 = string2;  // asigning string1 to string2 object
string1 == string2; // true, they both refer to the same object
于 2010-10-07T20:51:21.957 回答
0

==如果您确定对象相同,则只能使用进行比较。

例如,如果您有一个最终的静态字符串变量,则可能会发生这种情况。您可以确定将在同一个对象之间进行比较。

坚持使用equalsfor 字符串比较。

于 2010-10-07T20:51:44.927 回答