String parts is String[6]:
["231", "CA-California", "Sacramento-155328", "aleee", "Customer Service Clerk", "Alegra Keith.doc.txt"]
But when I compare parts[0]
with "231"
:
"231" == parts[0]
the above result is false,
I'm confused, so could anybody tell me why?
This is because the two Integer objects have the same value, but they are not the same object.
In String, the == operator is used to comparing the reference of the given strings, depending on if they are referring to the same objects. When you compare two strings using == operator, it will return true if the string variables are pointing toward the same java object. Otherwise, it will return false .
We can compare String in Java on the basis of content and reference. It is used in authentication (by equals() method), sorting (by compareTo() method), reference matching (by == operator) etc. There are three ways to compare String in Java: By Using equals() Method.
Using the “==” operator for comparing text values is one of the most common mistakes Java beginners make. This is incorrect because “==” only checks the referential equality of two Strings, meaning if they reference the same object or not.
The ==
operator compares the object references, not the value of the String
s.
To compare the values of String
s, use the String.equals
method:
"231".equals(parts[0]);
This is true with any other object in Java -- when comparing values, always use the equals
method rather than using the ==
operator.
The equals
method is part of Object
, and should be overridden by classes which will be compared in one way or another.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With