splitChunk method

List<String> splitChunk(
  1. Iterable<int> chunkSizes
)

Splits the string into chunks based on the provided chunk sizes.

The chunkSizes parameter is a list of integers representing the sizes of each chunk. If the list is empty, the entire string will be considered as a single chunk.

Returns a list of strings, where each string represents a chunk of the original string.

Example usage:

var input = 'Hello, world!';
var chunkSizes = [5, 2, 6];
var chunks = input.splitChunk(chunkSizes);
print(chunks); // Output: ['Hello', ', ', 'world!']

Implementation

List<String> splitChunk(Iterable<int> chunkSizes) {
  List<String> chunks = [];
  var input = this;
  while (input.isNotEmpty) {
    var size = chunkSizes.isNotEmpty ? chunkSizes.first : input.length;
    if (size <= 0) size = input.length;
    var chunk = input.substring(0, size);
    if (chunk.isEmpty) {
      if (input.isNotEmpty) chunks.add(input);
      break;
    }
    chunks.add(chunk);
    input = input.substring(size);
    chunkSizes = chunkSizes.skip(1).toList();
  }
  return chunks;
}