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

Функция contentDeepToString

Функция contentDeepToString возвращает строковое представление коллекции с рекурсивным обходом всех вложенных элементов. Применяется для массивов и коллекций, содержащих другие массивы или коллекции. В первый параметр мы передаем массив или коллекцию для преобразования, во второй необязательный параметр мы передаем буфер StringBuilder для построения результата.

Импорт

import kotlin.collections.contentDeepToString

Синтаксис

fun <T> Array<out T>.contentDeepToString(): String
fun Array<*>.contentDeepToString(): String
fun <T> Array<out T>.contentDeepToString( buffer: StringBuilder ): StringBuilder

Поддерживаемые типы коллекций

Функция работает со следующими типами коллекций:

  • Array - массивы любого типа
  • List - списки, содержащие массивы или другие списки
  • Set - множества, содержащие массивы или другие множества
  • Map - словари, где ключи или значения являются массивами
  • MutableList, MutableSet, MutableMap - изменяемые коллекции

Пример

Преобразуем в строку простой массив чисел:

val arr = arrayOf(1, 2, 3, 4, 5) val res = arr.contentDeepToString() println(res)

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

String "[1, 2, 3, 4, 5]"

Пример

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

val innerArr1 = arrayOf('a', 'b', 'c') val innerArr2 = arrayOf('d', 'e', 'f') val outerArr = arrayOf(innerArr1, innerArr2) val res = outerArr.contentDeepToString() println(res)

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

String "[[a, b, c], [d, e, f]]"

Пример

Используем StringBuilder для построения результата:

val arr = arrayOf(1, 2, 3) val buffer = StringBuilder() val res = arr.contentDeepToString(buffer) println(res.toString())

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

String "[1, 2, 3]"

Пример

Работа со списком, содержащим массивы:

val list = listOf( arrayOf(1, 2), arrayOf(3, 4) ) val res = list.toString() println("Обычный toString: $res") val deepRes = list.contentDeepToString() println("contentDeepToString: $deepRes")

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

String "Обычный toString: [[Ljava.lang.Integer@123456, [Ljava.lang.Integer@789abc]" String "contentDeepToString: [[1, 2], [3, 4]]"

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

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