我想用几行代码来演示,在 Java 中,要比较两个字符串 (String
),您必须使用 equals()
而不是运算符 ==
.
这是我试过的:
public static void main(String Args[]) {
String s1 = "Hello";
String s2 = "Hello";
if (s1 == s2)
System.out.println("same strings");
else
System.out.println("different strings");
}
我期待这个输出:different strings
,因为通过测试 s1 == s2
我实际上是在比较两个引用(即地址)而不是对象的内容.
但我实际上得到了这个输出:相同的字符串
!
浏览互联网我发现一些 Java 实现会优化上面的代码,这样 s1
和 s2
将 实际上引用相同的字符串。
那么,在 Java 中比较字符串(或对象)时,如何使用 ==
运算符演示问题?
最佳答案
编译器会根据您的情况进行一些优化,以便 s1
和 s2
实际上是同一个对象。您可以使用
String s1 = new String( "Hello" );
String s2 = new String( "Hello" );
然后您有两个具有相同文本内容的不同对象。
关于java - 演示与 Java 的字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3612659/