我在CodeChef上解决一个问题。一个特定的行来接受输入,比如:
10 232 4543
我愿意将它存储在变量中,然后进行计算。
下面是我用来实现这一点的代码行。
val (d,l,r) = readLine()!!.split(" ").map{ it -> it.toInt()}
此行适用于上一个问题,但不适用于当前问题。我正在插入我的代码和问题的链接。
fun main(){
var t = readLine()!!.toInt()
for(i in 0 until t){
val (d,l,r) = readLine()!!.split(" ").map{ it -> it.toInt()}
if(d<l){
println("Too Early")
}
else if(d>r){
println("Too Late")
}
else{
println("Take second dose now")
}
}
}
这是问题的链接:https://www.codechef.com/LP1TO201/problems/VDATES
以下是我收到的错误。
Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
at java.base/java.lang.Integer.parseInt(Integer.java:678)
at java.base/java.lang.Integer.parseInt(Integer.java:786)
at ProgKt.main(prog.kt:4)
at ProgKt.main(prog.kt)
1条答案
按热度按时间nnsrf1az1#
空字符串不是数字。有两种简单的方法可以解决这个问题:
使用
isEmpty()
过滤空字符串:使用
toIntOrNull()
并且只接受非空元素: