首页 › 问答 › Linux › 正文 Kotlin 的 print()、println()、readLine()、Scanner 和 REPL 怎么用? 2026-05-11 05:30:25 约 1 分钟读完 37 阅 文章导读 要获取用户输入,可以使用以下两种方法: 📋 目录 Ⅰ Kotlin 用户输入 Ⅱ Kotlin REPL A A 博客文档招聘获取支持联系销售Kotlin 用户输入 要获取用户输入,可以使用以下两种方法: readLine() Scanner class 注意:用户输入需要命令行工具。你可以使用 REPL 或 IntelliJ。这里我们使用 IntelliJ。 使用 readLine() readLine() 返回类型为 String? 的值,以便处理读取文件末尾等情况可能出现的 null 值。以下代码展示了使用 readLine() 的示例 fun main(args: Array<String>) { println("Enter your name:") var name = readLine() print("Length is ${name?.length}") } 如你所见,我们需要解包可空类型才能在属性上使用 String 类型函数。只有在绝对确定值不为 null 时,才使用 !! 强制将 String? 转换为 String,否则会崩溃。将输入转换为 Integer 要将输入 String 转换为 Int,我们这样做: fun main(args: Array<String>) { var number = readLine() try { println("Number multiply by 5 is ${number?.toInt()?.times(5)}") } catch (ex: NumberFormatException) { println("Number not valid") } } 我们再次使用 ?. 操作符将可空类型首先转换为 Int(使用 toInt()),然后将其乘以 5。连续读取输入 我们可以使用 do while 循环来连续读取输入,如下所示。 do { line = readLine() if (line == "quit") { println("Closing Program") break } println("Echo $line") } while (true) } 以上代码在 IntelliJ 命令行中的输出如下所示。 使用 split 操作符读取多个值 我们可以读取由分隔符分隔的多个值,并将其保存为元组形式,如下所示。 fun readIntegers(separator: Char = ',') = readLine()!!.split(separator).map(String::toInt) fun main(args: Array<String>) { println("Enter your values:") try { val (a, b, c) = readLine()!!.split(' ') println("Values are $a $b and $c") } catch (ex: IndexOutOfBoundsException) { println("Invalid. Missing values") } try { val (x, y, z) = readIntegers() println("x is $x y is $y z is $z") } catch (ex: IndexOutOfBoundsException) { println("Invalid. Missing values") } catch (ex: NumberFormatException) { println("Number not valid") } } split 函数接受将作为分隔符的字符。readIntegers() 函数使用 map 在 split 上将每个值转换为 Int。如果你输入的值少于元组中指定的数量,将抛出 IndexOutOfBoundsException。我们在两个输入中都使用了 try-catch。输出如下所示:另外,除了元组,我们也可以使用 list,如下所示。 val ints: List<String>? = readLine()?.split("|".toRegex()) println(ints) Kotlin Scanner Class 要获取输入,我们可以使用 Scanner(System.`in`),它从标准输入键盘获取输入。以下代码演示了这一点: fun main(args: Array<String>) { val reader = Scanner(System.`in`) print("Enter a number: ") // nextInt() reads the next integer. next() reads the String var integer:Int = reader.nextInt() println("You entered: $integer") reader.nextInt() 读取下一个整数。reader.next() 读取下一个 String。reader.nextFloat() 读取下一个 float,以此类推。reader.nextLine() 将 Scanner 传递到下一行并清空缓冲区。以下代码演示了在 print 语句中直接读取不同类型的输入。 import java.util.* fun main(args: Array<String>) { val reader = Scanner(System.`in`) print("Enter a number: ") try { var integer: Int = reader.nextInt() println("You entered: $integer") } catch (ex: InputMismatchException) { println("Enter valid number") } enterValues(reader) //move scanner to next line else the buffered input would be read for the next here only. reader.nextLine() enterValues(reader) } fun enterValues(reader: Scanner) { println("Enter a float/boolean :") try { print("Values: ${reader.nextFloat()}, ${reader.nextBoolean()}") } catch (ex: InputMismatchException) { println("First value should be a float, second should be a boolean. (Separated by enter key)") } } 当输入类型与要求的不同时,会抛出 InputMismatchException。输出如下所示。 Kotlin REPL REPL(也称为 Read-Eval-Print-Loop)用于在交互式 shell 中直接运行代码片段。我们可以通过启动 kotlin compiler 在终端/命令行中实现这一点。 安装命令行编译器 我们可以在 Mac/Windows/Ubuntu 上按照此处演示的方法安装命令行编译器。通常,在 Mac 上,我们可以使用 HomeBrew 在终端中安装 kotlin compiler。 brew update brew install kotlin 安装完成后,在终端/cmd 中输入 kotlinc 启动 REPL。以下是我在 REPL 中的第一个代码。这就是关于 Kotlin 打印函数以及 Kotlin REPL 快速介绍的所有内容。 感谢与 Community 一起学习。请查看我们提供的计算、存储、网络和管理数据库产品。 了解更多我们的产品