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;
}