private static List<String> splitCamelCase(String className){
  String remaining=className;
  List<String> result=new ArrayList<String>();
  while (!remaining.isEmpty()) {
    boolean found=false;
    for (int i=1; i < remaining.length(); i++) {
      if (Character.isUpperCase(remaining.charAt(i))) {
        result.add(remaining.substring(0,i));
        remaining=remaining.substring(i);
        found=true;
        break;
      }
    }
    if (!found) {
      result.add(remaining);
      remaining="";
    }
  }
  return result;
}

private static List < String > splitCamelCase ( String className ) { String remaining = className ; List < String > result = new ArrayList < String > ( ) ; while ( ! remaining . isEmpty ( ) ) { boolean found = false ; for ( int i = 1 ; i < remaining . length ( ) ; i ++ ) { if ( Character . isUpperCase ( remaining . charAt ( i ) ) ) { result . add ( remaining . substring ( 0 , i ) ) ; remaining = remaining . substring ( i ) ; found = true ; break ; } } if ( ! found ) { result . add ( remaining ) ; remaining = "" ; } } return result ; }
converts a name like " outputbyteinputtablecodingloop " to a list of words : { " output " , " byte " , " input " , " table " , " coding " , " loop " }
