code: public static String underscoresToCamelCase(String input, boolean capitializeNextLetter) {
      StringBuilder result = new StringBuilder();
      for (int i = 0; i < input.length(); i++) {
        char ch = input.charAt(i);
        if ('a' <= ch && ch <= 'z') {
          if (capitializeNextLetter) {
            result.append((char) (ch + ('A' - 'a')));
          } else {
            result.append(ch);
          }
          capitializeNextLetter = false;
        } else if ('A' <= ch && ch <= 'Z') {
          if (i == 0 && !capitializeNextLetter) {
            // Force first letter to lower-case unless explicitly told to
            // capitalize it.
            result.append((char) (ch + ('a' - 'A')));
          } else {
            // Capital letters after the first are left as-is.
            result.append(ch);
          }
          capitializeNextLetter = false;
        } else if ('0' <= ch && ch <= '9') {
          result.append(ch);
          capitializeNextLetter = true;
        } else {
          capitializeNextLetter = true;
        }
      }
      return result.toString();
    }
docs: Converts underscore field names to camel case, while preserving camel case field names.