EqualsIgnoreCase() not working as intended.

Viewed 3280

When i run the following program it prints only

equals says they are equal

However From equalsIgnoreCase docs in java 8 we have :

Two characters c1 and c2 are considered the same ignoring case if at least one of the following is true:
• Applying the method java.lang.Character.toUpperCase(char) to each character produces the same result

    public class Test {
    public static void main(String[] args) {

        String string1 = "abc\u00DF";
        String string2 = string1.toUpperCase();

        if (string1.equalsIgnoreCase(string2))
            System.out.println("equalsIgnoreCase says they are equal");

        if (string1.toUpperCase().equals(string2.toUpperCase()))
            System.out.println("equals says they are equal");

    }
}

So my question is why this program is not printing

equalsIgnoreCase says they are equal

As in both operations upper case charcters are used.

2 Answers
Related