Kotlin 如何从终端中的用户获取字符?
如何从终端获取Kotlin中字符的输入?我尝试使用readline(),但出现了一个错误Kotlin 如何从终端中的用户获取字符?,kotlin,Kotlin,如何从终端获取Kotlin中字符的输入?我尝试使用readline(),但出现了一个错误 fun asciiConverter(){ print("Enter the character to convert into ASCII : ") var characterVariable : Char = readLine() println("ASCII value is : ${characterVariable.toInt()}"
fun asciiConverter(){
print("Enter the character to convert into ASCII : ")
var characterVariable : Char = readLine()
println("ASCII value is : ${characterVariable.toInt()}")
}
上面的代码抛出了一个错误,类型不匹配。必需:字符,找到:字符串?
我不知道如何将字符串改为字符。是否有其他类似于readline()
的函数来获取字符?请让我知道
我想我没有其他方法来获取字符串并将其更改为字符数组。如果我错了,请纠正我。我试着运行下面的代码,它成功地运行了
fun asciiConverter2(){
print("Enter the character to convert into ASCII : ")
val characterVariable = readLine()?.toCharArray()
println("ASCII value is : ${characterVariable?.get(0)?.toInt()}")
}
(我不熟悉编程,也不熟悉堆栈溢出。很抱歉英语不好)import java.util*
趣味主线(args:Array){
ASCICONVERTER()
}
有趣的AsciConverter(){
val读卡器=扫描仪(系统.`in`)
打印(“输入要转换为ASCII的字符:”)
val characterVariable:Char=reader.next().single()
println(“ASCII值为:${characterVariable.toInt()}”)
}
将返回readLine()
,函数String?
将成为您稍后读取其他类型的模板readLn()
将返回firstOrNull()
作为第一个元素Char?
将此字符的值作为?。让{it.toInt()}
值返回。(Ascii)Int
readLn()
,例如:
fun readInt() = readLn().toIntOrNull() ?: println("Not an Int.")
readInt()
有关更多示例和技巧,请查看。感谢Naor Tedgi的快速回复。你的计划很有魅力。我知道Kotlin支持java,我不想在这个程序中使用java。是否有其他方法仅通过使用Kotlin获取字符表单用户?请让我知道。您正在阅读包含多个字符的行,因此与其使用
var characterVariable:Char,不如使用var characterVariable:String?
Hi Hayi Nukman。谢谢你的报告。我试着采纳你的建议。程序运行时没有编译错误。但是我在使用程序时遇到运行时错误``在线程“main”java.lang.NumberFormatException:中输入字符以转换为ASCII:f异常:对于输入字符串,在java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)在java.base/java.lang.Integer.parseInt(Integer.java:652)中输入字符串(NumberFormatException.java:65)在java.base/java.lang.Integer.parseInt(Integer.java:770)``代码中,您试图将其转换为Int。。。。或数字,而字符串f不是数字。。。你需要更多的代码来处理它。。。虽然我的建议是,因为您正在阅读包含字符串而不是单个字符的行。。。
fun readLn() = readLine()!!
fun readCharAndPrintAscii() {
println("Enter the character to convert into ASCII : ")
val charFromUser = readLn().firstOrNull()?.let { it.toInt() }
println("ASCII value is $charFromUser")
}
readCharAndPrintAscii()
fun readInt() = readLn().toIntOrNull() ?: println("Not an Int.")
readInt()