可讀格式檢索集合內(nèi)容,將集合轉(zhuǎn)換為字符串的函數(shù)
joinToString() 根據(jù)提供的參數(shù)從集合元素構(gòu)建單個 String。 joinTo() 執(zhí)行相同的操作,但將結(jié)果附加到給定的 Appendable 對象。
-
案例1: 當(dāng)使用默認(rèn)參數(shù)調(diào)用時,函數(shù)返回的結(jié)果類似于在集合上調(diào)用 toString():各元素的字符串表示形式以空格分隔而成的 String
val numbers = listOf("one", "two", "three", "four")
println(numbers)
println(numbers.joinToString())
val listString = StringBuffer("The list of numbers: ")
numbers.joinTo(listString)
println(listString)
result------>
[one, two, three, four]
one, two, three, four
The list of numbers: one, two, three, four
-
案例2: 要構(gòu)建自定義字符串表示形式,可以在函數(shù)參數(shù) separator、prefix 與 postfix中指定其參數(shù)。 結(jié)果字符串將以 prefix 開頭,以 postfix 結(jié)尾。除最后一個元素外,separator 將位于每個元素之后。
val numbers = listOf("one", "two", "three", "four")
println(numbers.joinToString(separator = " | ", prefix = "start: ", postfix = ": end"))
result ------>
start: one | two | three | four: end
-
案例3: 對于較大的集合,可能需要指定 limit ——將包含在結(jié)果中元素的數(shù)量。 如果集合大小超出 limit,所有其他元素將被 truncated 參數(shù)的單個值替換。
val numbers = (1..100).toList()
println(numbers.joinToString(limit = 10, truncated = "<...>"))
result ------>
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, <...>
-
案例4: 要自定義元素本身的表示形式,請?zhí)峁?transform 函數(shù)。
val numbers = listOf("one", "two", "three", "four")
println(numbers.joinToString { "Element: ${it.toUpperCase()}"})
result ------>
Element: ONE, Element: TWO, Element: THREE, Element: FOUR