Sun*_*eep 4 java string-comparison
比较两个字符串时,我被告知我们不应该使用逻辑运算符(==).我们应该使用String.equals(String)进行比较.但是,我看到以下代码符合并Hello Friend使用最新的JDK(1.6_23)打印" ".我试着四处寻找,找不到任何参考.从什么时候开始?
public class StringComp{
public static void main(String args[]){
String s = "hello";
if(s=="hello"){
System.out.println("Hello Friend");
}else{
System.out.println("No Hello");
}
}
}
Run Code Online (Sandbox Code Playgroud)
Nan*_*nne 11
你不应该使用,==因为它会做你想的其他事情.
在这种情况下,保存"你好"(读取字符串实习),因此它与你的搅拌一样"巧合".
==检查两件事情是否完全相同,而不是它们具有相同的内容.这是一个非常大的区别,一些偶然的(虽然可以解释)"虚假的可能性"并不是使用这种方法的理由.
只需使用equals进行字符串比较.
从这个站点的一个例子:http: //blog.enrii.com/2006/03/15/java-string-equality-common-mistake/
String a = new String ("a");
String b = new String ("a");
System.out.println (a == b);
Run Code Online (Sandbox Code Playgroud)
它返回false,而以下代码返回true.
String a = new String ("a");
String b = new String ("a");
System.out.println (a.equals(b));
Run Code Online (Sandbox Code Playgroud)