static L splitAt_withEmptyLast(S s, S splitter) { new L parts; int i = 0; if (s != null) while (i < l(s)) { int j = smartIndexOf(s, splitter, i); parts.add(substring(s, i, j)); i = j+l(splitter); } parts.add(substring(s, i)); ret parts; }