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

Функция joinTo

Функция joinTo преобразует все элементы коллекции в строки, объединяет их с помощью указанного разделителя и добавляет полученный результат к существующему объекту Appendable. Функция работает с массивами Array, списками List, множествами Set и другими типами коллекций, реализующими интерфейс Iterable.

Импорт

import kotlin.collections.joinTo

Синтаксис

fun <T> Array<out T>.joinTo( buffer: A, separator: CharSequence = ", ", prefix: CharSequence = "", postfix: CharSequence = "", limit: Int = -1, truncated: CharSequence = "...", transform: ((T) -> CharSequence)? = null ): A
fun <T> Iterable<T>.joinTo( buffer: A, separator: CharSequence = ", ", prefix: CharSequence = "", postfix: CharSequence = "", limit: Int = -1, truncated: CharSequence = "...", transform: ((T) -> CharSequence)? = null ): A

Параметры

buffer - объект Appendable, к которому добавляется результат;

separator - разделитель между элементами (по умолчанию ", ");

prefix - строка, добавляемая в начало результата (по умолчанию пустая);

postfix - строка, добавляемая в конец результата (по умолчанию пустая);

limit - максимальное количество отображаемых элементов (по умолчанию -1 - без ограничений);

truncated - строка, указывающая на обрезание элементов (по умолчанию "...");

transform - функция преобразования элементов перед добавлением (по умолчанию null).

Пример

Объединим элементы списка List и добавим результат к StringBuilder:

val numbers = listOf(1, 2, 3, 4, 5) val buffer = StringBuilder("Numbers: ") numbers.joinTo(buffer, separator = " | ") println(buffer.toString())

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

String "Numbers: 1 | 2 | 3 | 4 | 5"

Пример

Объединим элементы массива Array с префиксом и постфиксом:

val chars = arrayOf('a', 'b', 'c', 'd', 'e') val buffer = StringBuilder() chars.joinTo( buffer, separator = "-", prefix = "[", postfix = "]" ) println(buffer.toString())

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

String "[a-b-c-d-e]"

Пример

Используем ограничение количества элементов и функцию преобразования:

val numbers = setOf(10, 20, 30, 40, 50) val buffer = StringBuilder("Limited: ") numbers.joinTo( buffer, separator = ", ", prefix = "(", postfix = ")", limit = 3, transform = { it.toString() + "!" } ) println(buffer.toString())

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

String "Limited: (10!, 20!, 30!, ...)"

Пример

Объединим элементы множества Set с добавлением к файловому буферу:

val words = setOf("apple", "banana", "cherry") val file = java.io.File("output.txt") val writer = file.bufferedWriter() words.joinTo(writer, separator = "\n") writer.close()

Содержимое файла output.txt:

apple banana cherry

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

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