Java中的字符串比较“=”有什么问题?
Possible Duplicate:
Java String.equals versus ==
public class S_eaqual {
public static void main(String[] args) {
String s1 = "one", s2 = "two";
if (s1 + s2 == "onetwo") {
System.out.println("Yes..equal");
}
}
}
这种类型的比较显示错误。这不是比较字符串的正确方法吗?
可以使用==
运算符比较两个String
对象。那么,为什么这会显示错误呢
# 1 楼答案
使用等于:
# 2 楼答案
改用
(s1+s2).equals("onetwo");
# 3 楼答案
应使用
equals
方法比较字符串# 4 楼答案
试试这个
==
比较它们是否引用了相同的对象,并且s1+s2
的结果在本例中不是这样的,字符串上的.equals()
方法比较值是否相同。通常,您仅使用==
进行原语值比较。尽管您可以对对象执行此操作,但前提是要检查以确保两个引用指向同一对象