遇到空格时终止readLine()函数

时间:2019-07-09 05:52:08

标签: kotlin

因此,我开始使用Kotlin来解决CodeChef和Codeforces等网站上遇到的一些基本问题。

这个问题要求我们输入2个整数变量,例如 x y ,然后输入以 y 隔开的整数,例如 m 1 ,m 2 ,m 3 等,直到 m Y < / em>。但是它的输入方式如下所示:

4 3
3 2 3

我的Kotlin输入代码是这样的:

fun main(args: Array<String>)
{
    val n = readLine()!!.toInt()
    val m = readLine()!!.toInt()
    var a:Int
    for(i in 1..m) {
         a= readLine()!!.toInt()
        //Some additional manipulation involving all three variables
     }
}

提交后,我收到以下消息:

java.lang.NumberFormatException: For input string: "4 3"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:580)
    at java.lang.Integer.parseInt(Integer.java:615)
    at ProgramKt.main(program.kt:2)

因此,为了使我的代码成为我的代码,我必须以某种方式终止遇到空白的readLine()方法。还是还有其他方法?

1 个答案:

答案 0 :(得分:0)

在评论中进行一些讨论之后,答案很简单。我们要做的是实现split函数,然后将每个元素映射为一个Int。

fun main(args: Array<String>){
    val xandy = readLine()!!.split(" ").map{it.toInt()}
    val elems= readLine()!!.split(" ").map{it.toInt()}
    var b=1
    var ans=0
    for(i in 1..xandy[1]){
        //Manipulation stuff
    }
}