code: public static int lowerCaseHashCode(String s) {
          int h = 0;
          int len = s.length();
  
          for (int i = 0; i < len; i++) {
              h = 31*h + toLower(s.charAt(i));
          }
  
          return h;
      }
docs: A case insensitive hash code method to go with the case insensitive
  compare() method.
  
  Returns a hash code for this ASCII string as if it were lower case.
  
  returns same answer as:<p>
  <code>s.toLowerCase(Locale.US).hashCode();</code><p>
  but does not allocate memory (it does NOT have the special
  case Turkish rules).
  
  @param s a String to compute the hashcode on.
  @return  a hash code value for this object.