jetbrick-commons/src/main/java/jetbrick/lang/StringUtils.java
public static boolean equalsIgnoreCase(final String s1, final String s2) {
        if (s1 == null || s2 == null) {
            return s1 == s2;
        } else if (s1 == s2) {
            return true;
        } else if (s1.length() != s2.length()) {
            return false;
        } else {
            return s1.equals(s2);
        }
    }
public static boolean equalsIgnoreCase(final String s1, final String s2) {
        if (s1 == null || s2 == null) {
            return s1 == s2;
        } else if (s1 == s2) {
            return true;
        } else if (s1.length() != s2.length()) {
            return false;
        } else {
            return s1.equals(s2);
        }
    }
<p>
Compares two CharSequences, returning {@code true} if they represent
equal sequences of characters, ignoring case.
</p>

<p>
{@code null}s are handled without exceptions. Two {@code null} references
are considered equal. Comparison is case insensitive.
</p>

<pre>
StringUtils.equalsIgnoreCase(null, null)   = true
StringUtils.equalsIgnoreCase(null, "abc")  = false
StringUtils.equalsIgnoreCase("abc", null)  = false
StringUtils.equalsIgnoreCase("abc", "abc") = true
StringUtils.equalsIgnoreCase("abc", "ABC") = true
</pre>