[英]How to convert char to ascii value in kotlin language
我正在使用kotlin
开发一个 android 应用程序,其中我需要将字符串字符转换为其ASCII
值,
fun tryDiCript(cypher: String) :String {
var cypher = "fs2543i435u@$#g#@#sagb@!#12416@@@"
var originalText = ""
var regEx =Regex("[a-z]")
for(char in regEx.findAll(cypher))
{
originalText += (char.value.toInt()).toString()
}
return originalText
}
本教程网站向我展示了使用char.toInt()
但它给出了运行时错误说
引起:java.lang.NumberFormatException: Invalid int: "u"
所以,如果有人知道如何将 char 转换为 ASCII 值,请帮助我。
char.value
是一个String
。 当您调用String.toInt()
,它期望将数字字符串(例如"1", "-123"
解析为Int
。 所以, "f".toInt()
会给你NumberFormatException
因为"f"
不是一个数字字符串。
如果你确定char.value
是一个只包含一个字符的String
。 要获取它的 ascii 值,您可以使用:
char.value.first().code
你说的是ascii ,不是unicode 。 所以很容易。
这是一个示例,向您展示如何将 char ( 'A'
) 转换为它的 ascii 值。
fun main(vararg args: String) {
println('A'.toByte().toInt())
}
输出是我们预期的,65。
请注意,这不适用于 unicode。
我想这行得通。
fun tryDiCript(cypher: String): String {
var cypher = "fs2543i435u@$#g#@#sagb@!#12416@@@"
var originalText = ""
var regEx = Regex("[a-z]")
for(char in regEx.findAll(cypher))
originalText += char.value[0].toInt().toString()
return originalText
}
我建议您使用StringBuilder
。
fun tryDiCript(cypher: String): String {
var cypher = "fs2543i435u@$#g#@#sagb@!#12416@@@"
val originalText = StringBuilder()
var regEx = Regex("[a-z]")
for(char in regEx.findAll(cypher))
originalText.append(char.value[0].toInt())
return originalText.toString()
}
我检查了@ice1000 的答案,我发现下面的块不起作用。
fun main(vararg args: String) {
println('A'.toByte().toInt())
}
正如我们在科特林文档看到字符串-科特林程序设计语言中, toByte()
的函数String
“解析字符串作为符号字节数,并返回结果” 如果字符串的内容不是数字,则会抛出java.lang.NumberFormatException
。
但是还有一个String
函数叫做toByteArray()
,这个函数不需要字符串的内容是数字。 我的代码如下:
String tempString = "Hello"
val tempArray = tempString.toByteArray()
for (i in tempArray){
println(i.toInt())
}
注意 kotlin 文档中toByteArray()
函数的定义:
fun String.toByteArray(
charset: Charset = Charsets.UTF_8
): ByteArray
默认字符集是UTF-8,如果你想使用其他字符集,你可以通过参数修改它。
如果您的变量是 char 类型,例如“a”,您可以简单地使用 a.code
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.