code: public static List<String> split(char delim, String toSplit) {
      checkNotNull(toSplit, "toSplit");
      if (toSplit.indexOf(delim) == -1) {
        return Arrays.asList(toSplit); // sortable in JRE 7 and 8
      }
      List<String> out = new LinkedList<String>();
      StringBuilder currentString = new StringBuilder();
      for (char c : toSplit.toCharArray()) {
        if (c == delim) {
          out.add(emptyToNull(currentString.toString()));
          currentString.setLength(0);
        } else {
          currentString.append(c);
        }
      }
      out.add(emptyToNull(currentString.toString()));
      return out;
    }
docs: empty fields will result in null elements in the result.