Функция contentDeepToString

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

Импорт

kotlinimport kotlin.collections.contentDeepToString

Синтаксис

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

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

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

Пример

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

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

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

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

Пример

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

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

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

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

Пример

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

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

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

kotlinString "[1, 2, 3]"

Пример

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

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

val deepRes = list.contentDeepToString()
println("contentDeepToString: $deepRes")

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

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

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

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