我正在开发一个Android应用程序,kotlin需要在其中将字符串字符转换为其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
}
Run Code Online (Sandbox Code Playgroud)
本教程网站向我展示了使用方法,char.toInt()但它给出了运行时错误提示
原因:java.lang.NumberFormatException:无效的int:“ u”
因此,如果有人知道如何将char转换为ASCII值,请如何帮助我。
你说的是ascii,不是unicode。所以很容易。
这是一个示例,向您展示如何将 char ( 'A')转换为它的 ascii 值。
fun main(vararg args: String) {
println('A'.toByte().toInt())
}
Run Code Online (Sandbox Code Playgroud)
输出是我们预期的,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
}
Run Code Online (Sandbox Code Playgroud)
我建议你使用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()
}
Run Code Online (Sandbox Code Playgroud)
char.value是一个String。当您呼叫时String.toInt(),它希望将一个数字字符串"1", "-123"解析为Int。因此,由于不是数字字符串,"f".toInt()因此会给您。NumberFormatException"f"
如果你不确定char.value是String正好包含一个唯一的字符。要获得它的ascii值,可以使用:
char.value.first().toInt()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3649 次 |
| 最近记录: |