当比较两个字符串时,我被告知我们不应该使用逻辑运算符 (==)。我们应该使用 String.equals(String) 进行比较。但是,我看到以下代码符合并使用最新的 JDK(1.6_23) 打印“Hello Friend
”。我尝试四处搜索,但找不到任何引用。这是从什么时候开始的?
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");
}
}
}
最佳答案
你不应该使用 ==
因为它做了你想不到的事情。
在这种情况下,“hello”被保存(阅读字符串实习),所以它与你的 stirng 是同一件事是“巧合”。
==
检查两件事是否完全相同,而不是检查它们是否具有相同的内容。这是一个非常大的差异,一些意外的(虽然可以解释)“假阳性”不是使用这种方法的理由。
只需使用 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);
它返回false,而下面的代码返回true。
String a = new String ("a");
String b = new String ("a");
System.out.println (a.equals(b));
关于java - Java中与逻辑运算符的字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4744953/