Kotlin 将大数字转换为字符串,然后拆分为单个数字会产生不相关的数字
我试着把一个大数字分成几个数字。我就是这样做的:Kotlin 将大数字转换为字符串,然后拆分为单个数字会产生不相关的数字,kotlin,Kotlin,我试着把一个大数字分成几个数字。我就是这样做的: fun main() { var number = 8675309; val string = number.toString() println(string) val numbers = string.map { println(it) it.toInt() } numbers.forEach { println(it) } } 为此,我首先使用toStrin
fun main() {
var number = 8675309;
val string = number.toString()
println(string)
val numbers = string.map {
println(it)
it.toInt()
}
numbers.forEach { println(it) }
}
为此,我首先使用toString()
将数字转换为字符串。然后我打印这个字符串以验证它与字符串的数字是否相同
然后映射这个字符串,打印每个字符以验证它是否正确,然后使用toInt()
将字符转换为整数
我认为可以使用forEach()
检查新创建的数字数组并打印每个数字,但生成的数字与原始number
变量无关
为什么不起作用?在
string.map中,您正在迭代Char
值,而不是string
值。当您对Char
调用toInt()
时,您会得到该字符的ASCII码,这就是您在程序末尾看到的打印内容
解决此问题的一个简单方法是,在调用toInt()
之前,首先将Char
值转换为String
值,因此结果将是您所期望的:
fun main() {
var number = 789456123;
val string = number.toString()
println(string)
val numbers = string.map {
println(it)
it.toString().toInt()
}
numbers.forEach { println(it) }
}
在string.map
中,您正在迭代Char
值,而不是string
值。当您对Char
调用toInt()
时,您会得到该字符的ASCII码,这就是您在程序末尾看到的打印内容
解决此问题的一个简单方法是,在调用toInt()
之前,首先将Char
值转换为String
值,因此结果将是您所期望的:
fun main() {
var number = 789456123;
val string = number.toString()
println(string)
val numbers = string.map {
println(it)
it.toString().toInt()
}
numbers.forEach { println(it) }
}
这回答了问题吗?这回答了问题吗?