allIndicesOf method
Returns all start indices where substring occurs (non-overlapping).
Implementation
List<int> allIndicesOf(String substring) {
if (substring.isEmpty) return <int>[];
final int maxOccurrences = length ~/ (substring.length > 0 ? substring.length : 1) + 1;
final List<int> out = List<int>.filled(maxOccurrences, 0);
int i = 0;
int idx = 0;
while (true) {
i = indexOf(substring, i);
if (i == -1) break;
out[idx++] = i;
i += substring.length;
}
return out.sublist(0, idx);
}