code: public Iterable<String> split(final CharSequence sequence) {
      checkNotNull(sequence);
  
      return new Iterable<String>() {
        @Override
        public Iterator<String> iterator() {
          return splittingIterator(sequence);
        }
  
        @Override
        public String toString() {
          return Joiner.on(", ")
              .appendTo(new StringBuilder().append('['), this)
              .append(']')
              .toString();
        }
      };
    }
docs: Splits {@code sequence} into string components and makes them available through an {@link
  Iterator}, which may be lazily evaluated. If you want an eagerly computed {@link List}, use
  {@link #splitToList(CharSequence)}.
  
  @param sequence the sequence of characters to split
  @return an iteration over the segments split from the parameter