代码:
fun main(args: Array<String>) {
println("I'm running")
val str = readLine()
var sum = 0
val arr: IntArray
if (str != null) {
arr = str.split(" ").map(String::toInt).toIntArray()
for (ch in arr)
sum += ch
println(sum)
}
println("not running anymore")
}
INPUT:
56 -44 -72 -79 -38 -80 4 -85 34 -56 -92 51 36 -12 59 -43 31 17 -76 -8 -52 28 45 -68 -96 -7 -70 20
这就是我得到的:
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 KotKt.main(kot.kt:8)
答案 0 :(得分:0)
您可能应该减少输入。
而不是
str.split(" ")
你应该使用
str.trim().split(" +")
String#trim()
方法删除前导和尾随空白字符,这会导致您的错误。 +
方法的RegEx中的附加String#split(regex)
也会导致程序仍然正确读取输入,因此即使您使用多个空格作为数字之间的分隔符,也不会崩溃。字符串。
例如,即使此输入也可以使用:
val str = " 1 2 -54 4 811 33 44 4 321 87 "