kotlin - 为什么 int 变量的值在将其转换为字符串索引到 int 后会发生变化?
问题描述
fun main(){
val num=348597
println(num.toString()[0].toInt())
}
我应该得到 3 作为输出,但我得到的是 51。
有谁知道为什么,或者我可以做些什么来得到 3 作为结果?
解决方案
num.toString()
给你"348597"
。从中[0]
取出返回第一个 Char '3'
,它是一个 16 位 unicode 字符值。调用toInt()
只是将字符值转换为整数。在 unicode 中,代码点 < 128 与 ASCII 中的相同,而 51 是字符“3”的值。
要将字符作为表示“3”的字符串,请更改toInt()
为toString()
.
推荐阅读
- javascript - 我如何在 javascript 中将 forEach 用于 Json 数组
- javascript - 如何为工作线程创建池
- php - php 中的 execute() 函数有什么作用?
- python - 如何构建所有可能组合的元组列表
- reactjs - React-Native TextInput 防止默认受控输入
- python - Scrapy xpath 无法正常工作,返回空数据
- python - 有效地迭代对象
- visual-studio-2019 - 将 __declspec(dllexport) 添加到 struct 会导致编译错误
- image - Rails 图片上传不会显示
- java - 链表,计算偶数和不均匀位置,取消递归