throws Throwable
  public static int strcasecmp(String a, String b)    throws Throwable  {    int aLen = a.length();    int bLen = b.length();    for (int i = 0; i < aLen && i < bLen; i++) {      char chA = a.charAt(i);      char chB = b.charAt(i);      if (chA == chB)        continue;      if (Character.isUpperCase(chA))        chA = Character.toLowerCase(chA);      if (Character.isUpperCase(chB))        chB = Character.toLowerCase(chB);      if (chA == chB)        continue;      else if (chA < chB)        return -1;      else        return 1;    }    if (aLen == bLen)      return 0;    else if (aLen < bLen)      return -1;    else      return 1;  }