static ItIt splitAtSpaceIterator(S s) { ret iff_null(new IF0 { int i = 0, l = l(s); public S get() { // skip space(s) while (i < l) { if (isSpaceEtc(s.charAt(i))) ++i; else break; } if (i >= l) null; int j = i; // scan for non-whitespace while (j < l && !isSpaceEtc(s.charAt(j))) ++j; S part = substring(s, i, j); i = j; ret part; } }); }