Kotlin 数组 - joinTo() 函数



Kotlin 数组的 joinTo() 函数用于将数组(或任何集合)转换为字符串,并指定分隔符、前缀、后缀和转换函数。

此函数允许广泛修改元素如何连接到单个字符串。

如果集合可能很大,您可以为 limit 参数指定一个非负值。在这种情况下,只会追加前 limit 个元素,然后追加截断字符串(默认为“...”)。

语法

以下是 Kotlin 数组 joinTo() 函数的语法:

fun <T, A : Appendable> Array<out T>.joinTo(
   buffer: A,
   separator: CharSequence = ", ",
   prefix: CharSequence = "",
   postfix: CharSequence = "",
   limit: Int = -1,
   truncated: CharSequence = "...",
   transform: ((T) -> CharSequence)? = null
): A

参数

此函数接受以下参数,但并非所有参数都是必需的。

  • buffer:它表示需要追加结果的 Appendable。

  • separator:它表示元素之间的分隔符。默认值为 ", "。

  • prefix:它表示将在第一个元素之前添加的字符串。默认值为空字符串 ""。

  • postfix:它表示将在最后一个元素之后添加的字符串。默认值为空字符串 ""。

  • limit:它表示要追加的最大元素数。如果还有更多元素可用,则会在 limit 后追加截断字符串。默认值为 -1,表示没有限制。

  • truncated:当达到 limit 时要追加的字符串。默认为 "..."。

  • transform:将应用于每个元素以在将其追加到缓冲区之前对其进行转换的函数。

返回值

此函数返回一个字符串,其中包含此序列中的字符,顺序与数组或集合序列相同。

示例 1

以下示例演示了 joinTo() 函数的基本用法:

fun main(args: Array<String>) {
   val sb = StringBuilder("An existing string and an array: ")
   val numbers = arrayOf(1, 2, 3, 4, 5)
   println(numbers.joinTo(sb, prefix = "[", postfix = "]").toString())
}

输出

以下是输出:

An existing string and an array: [1, 2, 3, 4, 5]

示例 2

以下另一个示例,我们使用 joinTo 函数创建包含字符串和 1 到 100 的数字的字符串:

fun main(args: Array<String>) {
   val lotOfNumbers: Iterable<Int> = 1..100
   val sb = StringBuilder("First five numbers: ")
   println(lotOfNumbers.joinTo(sb,  limit = 7 ).toString())
}

输出

执行上述代码后,我们将得到以下输出:

First five numbers: 1, 2, 3, 4, 5, 6, 7, ...

示例 3

下面的示例构建一个字符串,创建一个可迭代的数字并将其追加到字符串中。然后我们使用 joinTo() 函数:

fun main(args: Array<String>) {
   val sb = java.lang.StringBuilder("This is tutorialspoint: ")
   val stringArray = arrayOf<String>("First", "Second", "Third")
   
   //first scenario
   println(stringArray.joinTo(sb, separator = "::" ))

   val lotOfNumbers: Iterable<Int> = 1..100
   val firstNumbers = StringBuilder("First 8 numbers: ")
   
   //second scenario
   println(lotOfNumbers.joinTo(firstNumbers,  limit = 8 ).toString())
}

输出

执行上述代码后,我们将得到以下输出:

This is tutorialspoint: First::Second::Third
First 8 numbers: 1, 2, 3, 4, 5, 6, 7, 8, ...
kotlin_arrays.htm
广告