为什么我不能使用这个源代码在Kotlin中添加两个数字?

这是我创建添加两个数字的代码:

import java.util.* fun main(args: Array<String>) { val (a, u) = readLine()!!.split(' ').map(String::toInt) println(add(a, u)) } fun add(a: Int, u: Int) = a + u 

不过,我不断收到这个错误:

 Exception in thread "main" java.lang.NumberFormatException: For input string: "" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:592) at java.lang.Integer.parseInt(Integer.java:615) at Kotlin_learnKt.main(kotlin^learn.kt:6) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) Process finished with exit code 1 

我不知道我在做什么错。 我只是想能够提示用户输入两个数字,让代码添加它们,然后返回结果。

从抛出的异常堆栈跟踪看来,它看起来不像是输入任何东西,所以readLine()返回不能被解析为int值的空字符串。

我建议您在排除故障时单独读取每个int值:

 fun readInt(message: Any?): Int { print(message) return readLine()!!.toInt() } val a = readInt("a = ") val u = readInt("u = ") println("a + u = ${a + u}") 

或者如果你想要看中:

 fun readInt(message: Any?): Int { val promptSequence = generateSequence( seedFunction = { print(message) readLine() }, nextFunction = { invalidInput -> println("Input '$invalidInput' is not an int value. Try again.") print(message) readLine() } ) return promptSequence.map(::Scanner).first(Scanner::hasNextInt).nextInt() } val a = readInt("a = ") val u = readInt("u = ") println("a + u = ${a + u}") 
 import java.util.Scanner fun main(vararg args: String) { val input = Scanner(System.`in`) val a = input.nextInt() val b = input.nextInt() println(a + b) }