如何在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
相关产品推荐
相关产品推荐

