首页 > 解决方案 > 如何遍历字符串列表并在 Kotlin 中连接它们?

问题描述

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

listOf("1", "2", "3", "4", "+", "3")

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

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

val myList = listOf("1", "2", "3", "4", "+", "3")
someConcatenationFunction(myList) // returns "1234"

标签: stringlistkotlin

解决方案


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

fun List<String>.concat() = this.joinToString("") { it }.takeWhile { it.isDigit() }

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

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

给你!现在您可以简单地执行以下操作:

listOf("1", "2", "3", "4", "+", "3").concat() // returns "1234"

推荐阅读