如何将字符串数组转换为Int数组在Kotlin?
Kotlin有许多简短而有趣的功能。 所以,我想知道是否有一些快捷方式将字符串数组转换为整型数组。 与Python中的这段代码类似:
results = [int(i) for i in results]
您可以使用.map { ... }
.toInt()
或.toIntOrNull()
:
val result = strings.map { it.toInt() }
只有结果不是数组而是列表。 最好在非关键代码中使用数组上的列表,查看差异 。
如果您需要数组,请添加.toTypedArray()
或.toIntArray()
。
我会用一些简单的东西
val strings = arrayOf("1", "2", "3") val ints = ints.map { it.toInt() }.toTypedArray()
另外,如果你是扩展:
fun Array<String>.asInts() = this.map { it.toInt() }.toTypedArray() strings.asInts()
如果您尝试转换实现RandomAccess
的List
结构(如ArrayList
或Array
),则可以使用此版本以获得更好的性能:
IntArray(strings.size) { strings[it].toInt() }
这个版本被编译为一个基本的循环和int[]
:
int size = strings.size(); int[] result = new int[size]; int index = 0; for(int newLength = result.length; index < newLength; ++index) { String numberRaw = strings.get(index); int parsedNumber = Integer.parseInt(numberRaw); result[index] = parsedNumber; }