这个问题需要打印数据类型https://codeforces.com/group/MWSDmqGsZm/contest/219158/problem/B
但是他只需要一行输入,每个数据类型之间要有空格
这是我的代码,有什么问题
import java.util.Scanner
乐趣主要(args:数组){
val scanner = Scanner(System.`in`)
var a:Int=readLine()!!.toInt()
var b:Long=readLine()!!.toLong()
var c:Char=scanner.next().single()
var d:Float=readLine()!!.toFloat()
var e:Double=readLine()!!.toDouble()
println(a)
println(b)
println(c)
println(d)
println(e)
}
线程"main"异常java.lang.NumberFormatException:用于输入字符串:"45 65896532145 a 45.23 65423.325"在java.base/java.lang.NumberFormatException.forInputString (NumberFormatException.java: 67)在java.base/java.lang.Integer.parseInt (Integer.java: 660)在java.base/java.lang.Integer.parseInt (Integer.java: 778)在Test_1Kt。主要(测试1. kt: 7)
问题是您不能将整个输入解析为整数,因为您期望的输入是一组中间有空格的值。空格本身不能解析为Integer(这就是导致异常的原因)
要解决这个问题,首先需要分割输入并解析每个元素。您可以使用kotlin内置的函数拆分它,例如
val input = readLine() ?: ""
val inputElement = input.split(" ")
这里,inputElement
是一个字符串数组,包含您输入的所有元素。接下来,您需要通过inputElement
索引
val a:Int=inputElement[0].toInt()
val b:Long=inputElement[1].toLong()
val c:Char=inputElement[2].single()
val d:Float=inputElement[3].toFloat()
val e:Double=inputElement[4].toDouble()
println(a)
println(b)
println(c)
println(d)
println(e)