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)}. Java 8+ users may prefer {@link #splitToStream} instead. @param sequence the sequ
(CharSequence sequence)
| 364 | * @return an iteration over the segments split from the parameter |
| 365 | */ |
| 366 | public Iterable<String> split(CharSequence sequence) { |
| 367 | checkNotNull(sequence); |
| 368 | |
| 369 | return new Iterable<String>() { |
| 370 | @Override |
| 371 | public Iterator<String> iterator() { |
| 372 | return splittingIterator(sequence); |
| 373 | } |
| 374 | |
| 375 | @Override |
| 376 | public String toString() { |
| 377 | return Joiner.on(", ") |
| 378 | .appendTo(new StringBuilder().append('['), this) |
| 379 | .append(']') |
| 380 | .toString(); |
| 381 | } |
| 382 | }; |
| 383 | } |
| 384 | |
| 385 | private Iterator<String> splittingIterator(CharSequence sequence) { |
| 386 | return strategy.iterator(this, sequence); |