In this program, you’ll learn to compare two strings in Java.
Example 1: Compare two strings
public class CompareStrings { public static void main(String[] args) { String style = "Bold"; String style2 = "Bold"; if(style == style2) System.out.println("Equal"); else System.out.println("Not Equal"); } }
Output
Equal
In the above program, we’ve two strings style and style2. We simply use the equal to operator (==
) to compare the two strings, which compares the value Bold to Bold and prints Equal.
Example 2: Compare two strings using equals()
public class CompareStrings { public static void main(String[] args) { String style = new String("Bold"); String style2 = new String("Bold"); if(style.equals(style2)) System.out.println("Equal"); else System.out.println("Not Equal"); } }
Output
Equal
In the above program, we have two strings named style and style2 both containing the same world Bold.
However, we’ve used String
constructor to create the strings. To compare these strings in Java, we need to use the equals()
method of the string.
You should not use ==
(equality operator) to compare these strings because they compare the reference of the string, i.e. whether they are the same object or not.
On the other hand, equals()
method compares whether the value of the strings is equal, and not the object itself.
If you instead change the program to use equality operator, you’ll get Not Equal as shown in the program below.
Example 3: Compare two string objects using == (Doesn’t work)
public class CompareStrings { public static void main(String[] args) { String style = new String("Bold"); String style2 = new String("Bold"); if(style == style2) System.out.println("Equal"); else System.out.println("Not Equal"); } }
Output
Not Equal
Example 4: Different ways to compare two strings
Here is the string comparison which is possible in Java.
public class CompareStrings { public static void main(String[] args) { String style = new String("Bold"); String style2 = new String("Bold"); boolean result = style.equals("Bold"); // true System.out.println(result); result = style2 == "Bold"; // false System.out.println(result); result = style == style2; // false System.out.println(result); result = "Bold" == "Bold"; // true System.out.println(result); } }
Output
true false false true