Java与==的两个字符串的比较是错误的吗?

2022-09-01 00:16:05

字符串部分是字符串[6]:

["231", "CA-California", "Sacramento-155328", "aleee", "Customer Service Clerk", "Alegra Keith.doc.txt"]

但是当我与:parts[0]"231"

"231" == parts[0]

上述结果为假,

我很困惑,所以谁能告诉我为什么?


答案 1

运算符比较对象引用,而不是 s 的值。==String

若要比较 s 的值,请使用 String.equals 方法:String

"231".equals(parts[0]);

对于Java中的任何其他对象都是如此 - 在比较值时,请始终使用方法而不是运算符。equals==

该方法是 Object 的一部分,应该被将以某种方式进行比较的类重写。equals


答案 2

如果字符串未被暂存,则 == 检查引用标识。用:

 "231".equals(parts[0]);

相反。