Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 如何从终端中的用户获取字符?_Kotlin - Fatal编程技术网

Kotlin 如何从终端中的用户获取字符?

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()}"

如何从终端获取Kotlin中字符的输入?我尝试使用readline(),但出现了一个错误

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()}
    将此字符的值作为
    Int
    值返回。(Ascii)
现在,您可以对另一个输入使用
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()