如何遍历字符串列表并在 Kotlin 中连接它们?

Syl*_*are 4 string list kotlin

我有一个字符串列表,例如:

listOf("1", "2", "3", "4", "+", "3")
Run Code Online (Sandbox Code Playgroud)

我想连接以便我只得到数字:"1234". 我首先尝试使用有效的 for 循环。

但是我想知道 Kotlin 是否有一种方法可以使用一条很好的一行来衬托整个事情,例如:

val myList = listOf("1", "2", "3", "4", "+", "3")
someConcatenationFunction(myList) // returns "1234"
Run Code Online (Sandbox Code Playgroud)

Syl*_*are 11

我找到的解决方案是这样的(像放在一个单独的文件中一样):

fun List<String>.concat() = this.joinToString("") { it }.takeWhile { it.isDigit() }
Run Code Online (Sandbox Code Playgroud)

所以基本上,它的作用是:

  • joinToString(""):JoinToString将列表的内容连接到字符串,""指定您不希望在连接的字符串中使用任何分隔符。
  • { it }.takeWhile { it.isDigit() }: 表示从连接列表中,我只想要数字字符。takeWhile将在第一个非数字处停止。

给你!现在你可以简单地做:

listOf("1", "2", "3", "4", "+", "3").concat() // returns "1234"
Run Code Online (Sandbox Code Playgroud)


HAX*_*AXM 8

只需使用函数conact 所有适用于和joinToString()的列表项。下面是例如。CharString

val list = listOf("1", "2", "3", "4", "+", "5")
val separator = ","
val string = list.joinToString(separator)
println(string)        //output: 1,2,3,4,+,5
Run Code Online (Sandbox Code Playgroud)

其他例如。

val list = listOf("My", "Name", "is", "Alise")
val separator = " "
val string = list.joinToString(separator)
println(string)        //outeput: My Name is Alisse
Run Code Online (Sandbox Code Playgroud)