Функция 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,
которая возвращает стандартное строковое представление объекта