НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
353 of 1310 menu

Функция zip

Функция zip объединяет две строки в список пар Pair, где каждый символ первой строки сопоставляется с соответствующим символом второй строки. Результатом является список пар, где первый элемент пары - символ из первой строки, а второй элемент - символ из второй строки.

Синтаксис

fun String.zip(other: CharSequence): List<Pair<Char, Char>>
fun <R> String.zip( other: CharSequence, transform: (a: Char, b: Char) -> R ): List<R>

Пример

Объединим две строки "abc" и "123" в список пар:

val str1 = "abc" val str2 = "123" val res = str1.zip(str2) println(res)

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

List<Pair<Char, Char>> [('a', '1'), ('b', '2'), ('c', '3')]

Пример

Если строки имеют разную длину, результат будет содержать столько пар, сколько символов в более короткой строке:

val str1 = "abcd" val str2 = "12" val res = str1.zip(str2) println(res)

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

List<Pair<Char, Char>> [('a', '1'), ('b', '2')]

Пример

Использование функции с преобразованием. Объединим символы двух строк в одну строку:

val str1 = "abc" val str2 = "123" val res = str1.zip(str2) { a, b -> "$a$b" } println(res)

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

List<String> ['a1', 'b2', 'c3']

Пример

Создадим список чисел, где каждое число является суммой кодов символов из двух строк:

val str1 = "abc" val str2 = "123" val res = str1.zip(str2) { a, b -> a.code + b.code } println(res)

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

List<Int> [146, 148, 150]

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

  • функцию chunked,
    которая разбивает строку на части заданного размера
  • функцию windowed,
    которая создает скользящее окно над строкой
  • функцию plus,
    которая объединяет строки путем конкатенации
  • функцию joinToString,
    которая объединяет элементы коллекции в строку
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить