如何将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() }