如何将字符串数组转换为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() 

如果您尝试转换实现RandomAccessList结构(如ArrayListArray ),则可以使用此版本以获得更好的性能:

 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; } 
    Interesting Posts