如何将char转换为kotlin语言的ascii值
我正在开发一个android应用程序与kotlin
我需要将字符串转换为其ASCII
值,
fun tryDiCript(cypher: String) :String { var cypher = "fs2543i435u@$#g#@#sagb@!#12416@@@" var originalText = "" var regEx =Regex("[az]") for(char in regEx.findAll(cypher)) { originalText += (char.value.toInt()).toString() } return originalText }
本教程网站显示我使用char.toInt()
但它给运行时错误说
引起:java.lang.NumberFormatException:无效int:“u”
所以如果有人知道热将char转换为ASCII值请帮助我。
char.value
是一个String
。 当你调用String.toInt()
,期望一个数字字符串如"1", "-123"
被解析为Int
。 所以, "f".toInt()
会给你NumberFormatException
因为"f"
不是一个数字字符串。
如果你确定char.value
是只包含一个字符的String
。 要获得它的ASCII值,你可以使用:
char.value.first().toInt()
你说ascii ,而不是unicode 。 所以很简单
这是一个示例,向您展示如何将char( 'A'
)转换为ascii值。
fun main(vararg args: String) { println('A'.toByte().toInt()) }
产量是我们预期的,65。
注意这不适用于Unicode。
编辑1
我想这个工作。
fun tryDiCript(cypher: String): String { var cypher = "fs2543i435u@$#g#@#sagb@!#12416@@@" var originalText = "" var regEx = Regex("[az]") 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("[az]") for(char in regEx.findAll(cypher)) originalText.append(char.value[0].toInt()) return originalText.toString() }