static int lowerCaseCompare(S a, S b) { if (a == null) ret b == null ? 0 : -1; if (b == null) ret 1; int len1 = a.value.length; int len2 = b.value.length; int lim = Math.min(len1, len2); char v1[] = a.value; char v2[] = b.value; int k = 0; while (k < lim) { char c1 = Character.toLowerCase(v1[k]); char c2 = Character.toLowerCase(v2[k]); if (c1 != c2) ret c1 - c2; k++; } ret len1 - len2; }