Kotlin中如何从标准输入(stdin)获取Int类型数组并传入函数
实现代码
你可以直接使用如下代码完成读取stdin内容并转为数组传入目标函数:
fun myFunc(items: Array<Int>) { // 你原有逻辑保留即可 } fun main() { // 读取标准输入的一行内容 val input = readLine() ?: return // 移除首尾的方括号,按逗号分割后处理每个元素 val arr = input.removeSurrounding("[", "]") .split(",") .map { it.trim().toInt() } .toTypedArray() // 调用目标函数 myFunc(arr) }
逻辑说明
readLine()用于读取标准输入的一行内容,空输入会直接终止流程避免报错removeSurrounding("[", "]")直接移除输入字符串首尾的方括号,不用手动处理索引- 分割后的每个元素先调用
trim()去除前后空格,再转为Int类型,兼容输入中逗号后带空格的格式 - 最后用
toTypedArray()将List转为要求的 Array<Int>类型传入myFunc
如果需要兼容非法输入格式的场景,可以加上异常捕获:
fun main() { val input = readLine() ?: return try { val arr = input.removeSurrounding("[", "]") .split(",") .map { it.trim().toInt() } .toTypedArray() myFunc(arr) } catch (e: NumberFormatException) { println("输入格式不符合要求,请输入[-5, 0, 4]格式的整数数组") } }
内容的提问来源于stack exchange,提问作者AlexWhite
相关产品推荐
相关产品推荐

