Функция chunked

Функция chunked разбивает исходную строку на части (чанки) указанного размера и возвращает их в виде списка. Если длина строки не делится нацело на размер чанка, последний элемент списка будет содержать оставшиеся символы.

Синтаксис

kotlinfun String.chunked(size: Int): List<String>
kotlinfun <R> String.chunked(
  size: Int,
  transform: (CharSequence) -> R
): List<R>

Пример

Разобьем строку "abcdefgh" на части по 3 символа:

kotlinval str = "abcdefgh"
val res = str.chunked(3)
println(res)

Результат выполнения кода:

kotlin[abc, def, gh]

Пример

Разобьем строку "12345" на части по 2 символа:

kotlinval str = "12345"
val res = str.chunked(2)
println(res)

Результат выполнения кода:

kotlin[12, 34, 5]

Пример

Использование функции преобразования для конвертации каждого чанка в верхний регистр:

kotlinval str = "abcdef"
val res = str.chunked(2) { it.toString().uppercase() }
println(res)

Результат выполнения кода:

kotlin[AB, CD, EF]

Пример

Преобразование каждого чанка в число и вычисление суммы чисел:

kotlinval str = "123456"
val res = str.chunked(2) { it.toString().toInt() }
val sum = res.sum()
println("Chunks: $res")
println("Sum: $sum")

Результат выполнения кода:

kotlinChunks: [12, 34, 56]
Sum: 102

Пример

Если размер чанка больше длины строки, возвращается список с одним элементом:

kotlinval str = "abc"
val res = str.chunked(5)
println(res)

Результат выполнения кода:

kotlin[abc]

Смотрите также

  • функцию windowed,
    которая создает скользящее окно над строкой
  • функцию split,
    которая разбивает строку по разделителю
  • функцию take,
    которая возвращает первые n символов строки
  • функцию takeLast,
    которая возвращает последние n символов строки