Java中的字符串比较和字符串实习

hwamh0ep  于 2023-05-27  发布在  Java
关注(0)|答案(3)|浏览(167)

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

igsr9ssn

igsr9ssn1#

你应该几乎总是使用equals。你可以肯定string1 == string2将工作,如果:

  • 你已经确保了你已经以其他方式获得了不同的值(例如你使用的是从集合中获取的字符串值,但由于其他原因而比较它们)
  • 你知道你在处理编译时的字符串常量
  • 你已经手动地把字符串存储起来了

以我的经验来说,这种事不常发生。

dffbzjpn

dffbzjpn2#

根据我对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
qxgroojn

qxgroojn3#

只有在确定对象相同时,才能使用==进行比较。
例如,如果您有一个final静态String变量,则可能会发生这种情况。你可以肯定的是,比较将是在同一个对象之间。
坚持使用equals进行字符串比较。

相关问题