如何在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中使用列表