You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin读取单行空格分隔多类型数据报NumberFormatException问题

问题排查与修正方案

存在的问题

  • 读取逻辑错误:readLine()的作用是一次性读取整行输入,你第一次调用readLine()时已经把包含5个空格分隔字段的整行内容全部读取,尝试将包含空格的整串直接转换为Int,直接触发数值格式转换异常。同时混用readLine()和Scanner两种输入读取方式,会导致输入流读取顺序混乱,无法正确匹配每个目标字段。
  • 语法错误:main函数参数类型定义不合法,Kotlin标准入口函数的参数应为Array<String>而非Array。

修正方案

统一使用Scanner读取所有字段即可:Scanner默认以空白符作为输入分隔符,无需手动处理行拆分,可直接按顺序读取对应类型的字段,完全符合题目输入要求。
修正后的代码如下:

import java.util.Scanner

fun main(args: Array<String>) {
    val scanner = Scanner(System.`in`)
    val a: Int = scanner.nextInt()
    val b: Long = scanner.nextLong()
    val c: Char = scanner.next().single()
    val d: Float = scanner.nextFloat()
    val e: Double = scanner.nextDouble()

    println(a)
    println(b)
    println(c)
    println(d)
    println(e)
}

内容的提问来源于stack exchange,提问作者mahmoud deif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 21:57:03