Функция chunked
Функция chunked
разбивает исходную строку на части
(чанки) указанного размера и возвращает их в виде списка.
Если длина строки не делится нацело на размер чанка,
последний элемент списка будет содержать оставшиеся символы.
Синтаксис
fun String.chunked(size: Int): List<String>
fun <R> String.chunked(
size: Int,
transform: (CharSequence) -> R
): List<R>
Пример
Разобьем строку "abcdefgh"
на части по 3 символа:
val str = "abcdefgh"
val res = str.chunked(3)
println(res)
Результат выполнения кода:
[abc, def, gh]
Пример
Разобьем строку "12345"
на части по 2 символа:
val str = "12345"
val res = str.chunked(2)
println(res)
Результат выполнения кода:
[12, 34, 5]
Пример
Использование функции преобразования для конвертации каждого чанка в верхний регистр:
val str = "abcdef"
val res = str.chunked(2) { it.toString().uppercase() }
println(res)
Результат выполнения кода:
[AB, CD, EF]
Пример
Преобразование каждого чанка в число и вычисление суммы чисел:
val str = "123456"
val res = str.chunked(2) { it.toString().toInt() }
val sum = res.sum()
println("Chunks: $res")
println("Sum: $sum")
Результат выполнения кода:
Chunks: [12, 34, 56]
Sum: 102
Пример
Если размер чанка больше длины строки, возвращается список с одним элементом:
val str = "abc"
val res = str.chunked(5)
println(res)
Результат выполнения кода:
[abc]