static int compareIgnoreCase_lower(S s1, S s2) { if (s1 == null) ret s2 == null ? 0 : -1; if (s2 == null) ret 1; int n1 = s1.length(); int n2 = s2.length(); int min = Math.min(n1, n2); for (int i = 0; i < min; i++) { char c1 = s1.charAt(i); char c2 = s2.charAt(i); if (c1 != c2) { c1 = Character.toLowerCase(c1); c2 = Character.toLowerCase(c2); if (c1 != c2) ret c1-c2; } } ret n1-n2; }