To compare two strings for equality, use equals()
.
It has this general form:
boolean equals(Object str)
Here, str
is the String object being compared with the invoking String object.
It returns true if the strings contain the same characters in the same order, and false otherwise.
The comparison is case-sensitive.
To perform a comparison that ignores case differences, call equalsIgnoreCase()
.
It has this general form:
boolean equalsIgnoreCase(String str)
Here is an example that demonstrates equals()
and equalsIgnoreCase()
:
// Demonstrate equals() and equalsIgnoreCase(). public class Main { public static void main(String args[]) { String s1 = "Hello"; String s2 = "Hello"; String s3 = "Good-bye"; String s4 = "HELLO"; System.out.println(s1 + " equals " + s2 + " -> " + s1.equals(s2));// w w w . ja va 2s . c om System.out.println(s1 + " equals " + s3 + " -> " + s1.equals(s3)); System.out.println(s1 + " equals " + s4 + " -> " + s1.equals(s4)); System.out.println(s1 + " equalsIgnoreCase " + s4 + " -> " + s1.equalsIgnoreCase(s4)); } }
String methods equals
, equalsIgnoreCase
, compareTo
and regionMatches
.
public class Main { public static void main(String[] args) {/*w w w. j a va 2 s. c o m*/ String s1 = new String("hello"); // s1 is a copy of "hello" String s2 = "goodbye"; String s3 = "Happy Birthday"; String s4 = "happy birthday"; System.out.printf( "s1 = %s\ns2 = %s\ns3 = %s\ns4 = %s\n\n", s1, s2, s3, s4); // test for equality if (s1.equals("hello")) // true System.out.println("s1 equals \"hello\""); else System.out.println("s1 does not equal \"hello\""); // test for equality with == if (s1 == "hello") // false; they are not the same object System.out.println("s1 is the same object as \"hello\""); else System.out.println("s1 is not the same object as \"hello\""); // test for equality (ignore case) if (s3.equalsIgnoreCase(s4)) // true System.out.printf("%s equals %s with case ignored\n", s3, s4); else System.out.println("s3 does not equal s4"); // test compareTo System.out.printf( "\ns1.compareTo(s2) is %d", s1.compareTo(s2)); System.out.printf( "\ns2.compareTo(s1) is %d", s2.compareTo(s1)); System.out.printf( "\ns1.compareTo(s1) is %d", s1.compareTo(s1)); System.out.printf( "\ns3.compareTo(s4) is %d", s3.compareTo(s4)); System.out.printf( "\ns4.compareTo(s3) is %d\n\n", s4.compareTo(s3)); // test regionMatches (case sensitive) if (s3.regionMatches(0, s4, 0, 5)) System.out.println("First 5 characters of s3 and s4 match"); else System.out.println( "First 5 characters of s3 and s4 do not match"); // test regionMatches (ignore case) if (s3.regionMatches(true, 0, s4, 0, 5)) System.out.println( "First 5 characters of s3 and s4 match with case ignored"); else System.out.println( "First 5 characters of s3 and s4 do not match"); } }