code: public static String[] splitByWholeSeparator(String str, String separator) {
          return splitByWholeSeparatorWorker(str, separator, -1, false);
      }
docs: <p>
  Splits the provided text into an array, separator string specified.
  </p>
  
  <p>
  The separator(s) will not be included in the returned String array. Adjacent separators are treated as one
  separator.
  </p>
  
  <p>
  A <code>null</code> input String returns <code>null</code>. A <code>null</code> separator splits on whitespace.
  </p>
  
  <pre>
  StringUtils.splitByWholeSeparator(null, *)               = null
  StringUtils.splitByWholeSeparator("", *)                 = []
  StringUtils.splitByWholeSeparator("ab de fg", null)      = ["ab", "de", "fg"]
  StringUtils.splitByWholeSeparator("ab   de fg", null)    = ["ab", "de", "fg"]
  StringUtils.splitByWholeSeparator("ab:cd:ef", ":")       = ["ab", "cd", "ef"]
  StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-") = ["ab", "cd", "ef"]
  </pre>
  
  @param str the String to parse, may be null
  @param separator String containing the String to be used as a delimiter, <code>null</code> splits on whitespace
  @return an array of parsed Strings, <code>null</code> if null String was input