throws Throwable
  public static String ucwords(String string)    throws Throwable  {    int strLen = string.length();    boolean isStart = true;    StringBuilder sb = new StringBuilder();    for (int i = 0; i < strLen; i++) {      char ch = string.charAt(i);      switch (ch) {      case ' ': case '\t': case '\r': case '\n':        isStart = true;        sb.append(ch);        break;      default:        if (isStart)          sb.append(Character.toUpperCase(ch));        else          sb.append(ch);        isStart = false;        break;      }    }    return sb.toString();  }