Как преобразовать массив строк в массив Int в 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()) } 

Вышеуказанное будет делать это, но кажется, что есть лучший способ сделать это (возможно с лямбдами и потоками?).

Если ваш ввод действительно имеет разделители, вы можете split как уже было предложено. После этого map – это то, что вам нужно. Это сделает трюк:

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

или с лямбдой

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

Вы можете использовать .map { ... } с .toInt () или .toIntOrNull() :

  val result = strings.map { it.toInt() } 

Только результат – это не массив, а список. Предпочтительно использовать списки по массивам в коде, не относящемся к производительности, см. Различия.

Если вам нужен массив, добавьте .toTypedArray() или .toIntArray() .