kotlin: joinToString函数:把集合拼接为字符串

一,功能

功能:实现把集合拼接为字符串的功能

语法:

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
        }

运行结果:

image

三,例子:

代码:

        //处理按钮点击事件
        binding.button2.setOnClickListener {
           // 如果不指定分隔符,使用默认参数,元素之间会以逗号加空格分隔
            val numbers = listOf("one", "two", "three", "four")
            println(numbers.joinToString()) 
            //one, two, three, four

            // 可以指定参数 separator, prefix, 以及 postfix
            println(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, <...>
        }

运行结果:

image

 

posted @ 2025-08-23 09:20  刘宏缔的架构森林  阅读(20)  评论(0)    收藏  举报