code: public static StreamEx<String> split(CharSequence str, char delimiter, boolean trimEmpty) {
          if (str.length() == 0)
              return of("");
          return of(new CharSpliterator(str, delimiter, trimEmpty));
      }
docs: Creates a stream from the given input sequence around matches of the
  given character.
  
  <p>
  The stream returned by this method contains each substring of the input
  sequence that is terminated by supplied delimiter character or is
  terminated by the end of the input sequence. The substrings in the stream
  are in the order in which they occur in the input. If the trimEmpty
  parameter is true, trailing empty strings will be discarded and not
  encountered in the stream.
  
  <p>
  If the given delimiter character does not appear in the input then the
  resulting stream has just one element, namely the input sequence in
  string form.
  
  <p>
  If the input sequence is mutable, it must remain constant from the stream
  creation until the execution of the terminal stream operation. Otherwise,
  the result of the terminal stream operation is undefined.
  
  @param str The character sequence to be split
  @param delimiter The delimiter character to use for splitting
  @param trimEmpty If true, trailing empty strings will be discarded
  
  @return The stream of strings computed by splitting the input around the
  delimiters
  @see Pattern#splitAsStream(CharSequence)
  @since 0.5.1