Java与==的两个字符串的比较是错误的吗?
字符串部分是字符串[6]:
["231", "CA-California", "Sacramento-155328", "aleee", "Customer Service Clerk", "Alegra Keith.doc.txt"]
但是当我与:parts[0]
"231"
"231" == parts[0]
上述结果为假,
我很困惑,所以谁能告诉我为什么?
字符串部分是字符串[6]:
["231", "CA-California", "Sacramento-155328", "aleee", "Customer Service Clerk", "Alegra Keith.doc.txt"]
但是当我与:parts[0]
"231"
"231" == parts[0]
上述结果为假,
我很困惑,所以谁能告诉我为什么?
运算符比较对象引用,而不是 s 的值。==
String
若要比较 s 的值,请使用 String.equals
方法:String
"231".equals(parts[0]);
对于Java中的任何其他对象都是如此 - 在比较值时,请始终使用方法而不是运算符。equals
==
该方法是 Object
的一部分,应该被将以某种方式进行比较的类重写。equals
如果字符串未被暂存,则 == 检查引用标识。用:
"231".equals(parts[0]);
相反。