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

如何在Kotlin的同一行中读取两种不同数据类型的用户输入?

Kotlin同一行读取不同类型输入的解决方法

你原来用var (a,b)= readLine()!!.split(" ").map { it.toInt() }能在同一行读取同类型整数,但要读整数+浮点数这种混合类型的输入(比如30 120.00),不能直接用统一的map转换,得分别处理拆分后的每个元素。

修改后的可运行代码

fun main(){
    // 将同一行输入按空格拆分成字符串数组
    val inputParts = readLine()!!.split(" ")
    // 分别转换为对应的数据类型
    val a = inputParts[0].toInt()
    val b = inputParts[1].toFloat()
    
    if (a > b) {
        val roundNumber = "%.2f".format(b)
        println(roundNumber)
    } else if (a % 5 == 0 && b >= a + 0.5) {
        val c = b - (a + 0.5)
        val roundNumber = "%.2f".format(c)
        println(roundNumber)
    } else {
        val roundNum = "%.2f".format(b)
        println(roundNum)
    }
}

关键说明

  • 先用split(" ")把输入行按空格切分成两个字符串元素
  • 单独对第一个元素调用toInt()转整数,第二个调用toFloat()转浮点数
  • 后续逻辑和你原来的代码完全一致,只是把分两行读的逻辑改成了同一行拆分处理

这样修改后,直接输入30 120.00就能得到输出89.50,完全符合需求。


内容的提问来源于stack exchange,提问作者Mr Asheq

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 09:55:25