Kotlin 语言参考文档 中文版 Help

读取标准输入

请使用 readln() 函数从标准输入(Standard Input)读取数据. 这个函数将整个行读取为字符串.

// 读取用户的输入, 并保存到一个变量中. 例如: Hi there! val myInput = readln() println(myInput) // 输出结果为: Hi there! // 读取并带音用户的输入, 不保存在变量中. 例如: Hi, Kotlin! println(readln()) // 输出结果为: Hi, Kotlin!

要使用字符串之外的数据类型, 你可以使用转换函数对输入进行类型转换, 例如 .toInt(), .toLong(), .toDouble(), .toFloat(), 或 .toBoolean(). 可以读取多个不同数据类型的输入, 并将每个输入保存到一个变量中:

// 将输入从字符串转换为整数值. 例如: 12 val myNumber = readln().toInt() println(myNumber) // 输出结果为: 12 // 将输入从字符串转换为 Double 值. 例如: 345 val myDouble = readln().toDouble() println(myDouble) // 输出结果为: 345.0 // 将输入从字符串转换为 Boolean 值. 例如: true val myBoolean = readln().toBoolean() println(myBoolean) // 输出结果为: true

这些转换函数会假定用户输入的是目标数据类型的正确格式. 例如, 使用 .toInt() 将 "hello" 转换为整数, 会导致一个异常, 因为函数期待的输入字符串应该是数字.

要读取分隔符号分隔的多个输入元素, 请使用 .split() 函数, 并指定分隔符. 下面的代码演示如何从标准输入读取, 并按照分隔符将输入切分为一组元素的 List, 再将 List 中的各个元素转换为指定的类型:

// 读取输入, 假定元素以空格分隔, 并转换为整数. 例如: 1 2 3 val numbers = readln().split(' ').map { it.toInt() } println(numbers) // 输出结果为: [1, 2, 3] // 读取输入, 假定元素以逗号分隔, 并转换为 Double. 例如: 4,5,6 val doubles = readln().split(',').map { it.toDouble() } println(doubles) // 输出结果为: [4.0, 5.0, 6.0]

以安全的方式处理标准输入

你可以使用 .toIntOrNull() 函数, 以安全的方式将用户输入从字符串转换为整数. 如果转换成功, 这个函数返回一个整数. 但是, 如果输入不是一个有效的整数, 它会返回 null:

// 如果输入无效, 返回 null. 例如: Hello! val wrongInt = readln().toIntOrNull() println(wrongInt) // 输出结果为: null // 将有效的输入从字符串转换为整数. 例如: 13 val correctInt = readln().toIntOrNull() println(correctInt) // 输出结果为: 13

readlnOrNull() 函数也有助于安全的处理用户输入. readlnOrNull() 函数会读取标准输入, 如果遇到输入结束, 这个函数会返回 null, 而 readln() 对这样的情况会抛出异常.

最终更新: 2024/12/17