一,功能
功能:实现把集合拼接为字符串的功能
语法:
fun <T> Iterable<T>.joinToString(separator: CharSequence = ", ",prefix: CharSequence = "",postfix: CharSequence = "",limit: Int = -1,truncated: CharSequence = "...",transform: ((T) -> CharSequence)? = null
): String
参数:
-
separator:分隔符,用于在各个元素之间插入一个字符串。默认值为 ", "。
-
prefix:前缀,加在生成的字符串的开头。默认值为 ""。
-
postfix:后缀,加在生成的字符串的结尾。默认值为 ""。
-
limit:限制输出元素的数量。如果集合元素数量超过这个值,那么超出部分将会被 truncated 参数指定的字符串替换。默认值为 -1,表示不限制。
-
truncated:当元素数量超过 limit 参数指定的值时,用于替换多余元素的字符串。默认值为 "..."。
-
transform:一个函数,用于将集合中的每个元素转换为字符串。如果不提供这个参数,那么将直接调用元素的 toString 方法进行转换。
二,例子:
代码:
//处理按钮点击事件binding.button1.setOnClickListener {val numbers = listOf(1, 2, 3, 4, 5)//无参数println(numbers.joinToString()) // 输出:1, 2, 3, 4, 5//指定分隔符println(numbers.joinToString(separator = "|")) // 输出:1|2|3|4|5//指定前缀后缀println(numbers.joinToString(prefix = "[", postfix = "]")) // 输出:[1, 2, 3, 4, 5]//指定数量println(numbers.joinToString(limit = 3)) // 输出:1, 2, 3, ...//指定表示形式println(numbers.joinToString(transform = { "Number $it" }))// 输出:Number 1, Number 2, Number 3, Number 4, Number 5}
运行结果:

三,例子:
代码:
//处理按钮点击事件binding.button2.setOnClickListener {// 如果不指定分隔符,使用默认参数,元素之间会以逗号加空格分隔val numbers = listOf("one", "two", "three", "four")println(numbers.joinToString()) //one, two, three, four// 可以指定参数 separator, prefix, 以及 postfixprintln(numbers.joinToString(separator = " | ", prefix = "start: ", postfix = ": end"))// start: one | two | three | four: end// 如果要控制集合元素本身的字符串表示形式, 可以指定一个 transform 函数println(numbers.joinToString { it.uppercase() })// ONE, TWO, THREE, FOUR//首字母大写println(numbers.joinToString { it.replaceFirstChar { it.titlecase(Locale.ROOT) } })//One, Two, Three, Four// 对于较大的集合, 可以指定 limit – 结果中包含的最大元素个数.// 如果集合大小超过 limit 值, 所有超过的元素会被替换为 truncated 参数指定的值.val numbers2 = (1..100).toList()println(numbers2.joinToString(limit = 10, truncated = "<...>"))// 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, <...>}
运行结果:

