如何在Kotlin上实现readLine()!!。toIntArray()?

我想实现一个函数或某种方式来从控制台顺序存储数组 。 像这样的东西: readLine()!!.toIntArray()

使用这个循环是否方便?还是可以避免?

然后你可以使用数组的索引来访问它们。

 fun main(args: Array) { myFunction() } 

A:

 fun myFunction() { println(" . First number: ") val num1:Float = readLine()!!.toFloat() println(" . Second number: ") val num2:Float = readLine()!!.toFloat() println(" . Third number: ") val num3:Float = readLine()!!.toFloat() println(" . Fourth number: ") val num4:Float = readLine()!!.toFloat() val result:Float = (num1+num2) + (num3*num4) print("The result is: $result") } 

B:

 fun myFunction() { println("Enter four numbers ...") // val numbers:IntArray = intArrayOf(45, 22, 10, 13) val numbers:IntArray = readLine()!!.toIntArray() //HERE: toIntArray() isn't defined val result:Int = (numbers[0]+numbers[1]) + (numbers[2]*numbers[3]) print("The result is: $result") } 

定义数组时,我将不得不指出我想要从控制台读取的值的数量,即数组的大小。

还是有另一种方法来停止读取控制台中的数据?

总之,我想从A块转到B块的想法。

 println("Enter four numbers ...") val numbers = readLine()!!.split(" ").map { it.toInt() } val result:Int = (numbers[0]+numbers[1]) + (numbers[2]*numbers[3]) print("The result is: $result") 

你不需要循环。 可以用map完成:

 val numbers = readLine()!!.split(" ").map { it.toInt() } 

如果您需要从您的示例中单独读取数字:

 val list = List(4) { readline()!!.toFloat() } 

数组也可以做同样的事情,但是建议在Kotlin中使用列表