Although Java’s String package is a lot more friendly than C’s string handling, you can still find yourself surprised by its behavior at times. Consider this code:
import java.lang.String;public class StringCompareTest { public static void main(String argv[]) { String string1 = "JavaPro"; String string2 = "JavaPro"; if (string1 == string2) System.out.println("Equal!"); }}
Even though both string1 and string2 contain the same values, this class will still tell you they’re different. Why? The answer lies in the use of the == operator: when used in this way, Java compares the value of the pointers to the strings, not the string values. The right comparison code looks like this:
If (string1.equals(string2))