Char.toInt()
返回字符的ASCII码,而不是其数值。那么如何将Char转换为具有正确数值的整数呢?
答案 0 :(得分:4)
答案:
您可以在Char类上创建一个扩展,该扩展从toInt()
返回的ASCII代码中减去48。这将为您提供角色的正确数值!
fun Char.getNumericValue(): Int {
if (this !in '0'..'9') {
throw NumberFormatException()
}
return this.toInt() - '0'.toInt()
}
答案 1 :(得分:1)
您也可以将其转换为String
,然后使用toInt()
,这可能更明显。
fun Char.getNumericValue(): Int {
if (!isDigit()) {
throw NumberFormatException()
}
return this.toString().toInt()
}