partialSplit method
A version of String.split that limits splitting to return a List of
at most count
items.
count
must be non-negative. If count
is 0, returns an empty
List.
If splitting this String would result in more than count
items, the
final element will contain the unsplit remainder of this String.
If splitting this String would result in fewer than count
items,
returns a List with only the split substrings.
Implementation
// Based on <https://stackoverflow.com/a/76039017/>.
List<String> partialSplit(Pattern separatorPattern, int count) {
assert(count >= 0);
var tokens = <String>[];
if (count == 0) {
return tokens;
}
for (var tokenInterval in _lazySplit(separatorPattern)) {
if (tokens.length + 1 == count) {
tokens.add(substring(tokenInterval.start));
break;
}
tokens.add(substring(tokenInterval.start, tokenInterval.end));
}
return tokens;
}