如何在Kotlin中将字符串数组转换为Int数组

时间:2017-12-04 12:09:02

标签: lambda kotlin

我希望在Kotlin中将List<String>转换为List<Int>

val stringArray = "1 2 3 4 5 6".split(" ")
val intArray = MutableList<Int>(0, {0})
for (item in stringArray) {
    intArray.add(item.toInt())
}

上面会这样做,但感觉就好像有一种更好的方法(可以使用lambdas和stream?)。

3 个答案:

答案 0 :(得分:6)

如果您的输入确实有分隔符,则可以按照已建议的split进行操作。之后map就是您所需要的。这样就可以了:

val numbers = "1 2 3 4 5 6"
val result = numbers.split(" ").map(String::toInt)

答案 1 :(得分:3)

val intArray = stringArray.map(String::toInt)

或与lambda

val intArray = stringArray.map { it.toInt() }

答案 2 :(得分:1)

您可以将.map { ... }与.toInt()或.toIntOrNull()

一起使用
 val result = strings.map { it.toInt() }

只有结果不是数组而是列表。最好在非性能关键代码中使用列表而不是数组,请参阅差异。

如果您需要数组,请添加.toTypedArray().toIntArray()