在Kotlin中将一行输入解析为不同的类型

  • 本文关键字:类型 一行 Kotlin kotlin
  • 更新时间 :
  • 英文 :


这个问题需要打印数据类型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)

相关内容

  • 没有找到相关文章

最新更新