首页 > 解决方案 > 为什么 int 变量的值在将其转换为字符串索引到 int 后会发生变化?

问题描述

fun main(){
    val num=348597
    println(num.toString()[0].toInt())
}

我应该得到 3 作为输出,但我得到的是 51。

有谁知道为什么,或者我可以做些什么来得到 3 作为结果?

标签: kotlinjvm

解决方案


num.toString()给你"348597"。从中[0]取出返回第一个 Char '3',它是一个 16 位 unicode 字符值。调用toInt()只是将字符值转换为整数。在 unicode 中,代码点 < 128 与 ASCII 中的相同,而 51 是字符“3”的值。

要将字符作为表示“3”的字符串,请更改toInt()toString().


推荐阅读