如何在Kotlin中遍历字符串列表并将其串联起来?

时间:2019-06-13 17:39:40

标签: string list kotlin

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

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

我想进行连接,以便仅获取数字:"1234"。我首先尝试使用一个有效的for循环。

但是我想知道Kotlin是否可以用一种漂亮的一行像这样衬砌整个事情:

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

3 个答案:

答案 0 :(得分:3)

我发现的解决方案是这个(要放在一个单独的文件中):

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"

答案 1 :(得分:1)

只需使用函数 engine = sqlalchemy.engine.create_engine('mysql://py:123@localhost/py', echo=True) con = engine.connect() res = con.execute("insert into user set name = %s", 'A') 连接所有适用于 joinToString()Char 的列表项。 下面是例如。

String

其他例如

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

答案 2 :(得分:0)

您并没有明确地说过这一点,因此我需要猜测,您只希望在遇到另一个字符串时就连接整数停止。最简单的方法是:

data-toggle="drowndown"