将大数字转换为字符串,然后拆分为个位数会导致不相关的数字



我正在尝试将一个大数字分成单独的数字。这就是我的做法:

fun main() {
var number = 8675309;
val string = number.toString()
println(string)
val numbers = string.map {
println(it)
it.toInt()
}
numbers.forEach { println(it) }
}

这是指向具有此代码的 Kotlin 游乐场的链接。

为此,我首先使用toString()将数字转换为字符串。然后我打印此字符串以验证它是否与字符串相同。

然后,我映射此字符串,打印每个单独的字符以验证它是否正确,然后将该字符转换为带有toInt()的整数。

我认为使用forEach()来浏览新创建的数字数组并打印每个数字,但生成的数字与原始number变量无关。

为什么这不起作用?

string.map内部,您正在迭代Char值,而不是String值。当您在Char上调用toInt()时,您将获得该字符的 ASCII 代码,这是您在程序末尾看到的打印代码。

解决此问题的一种简单方法是先将Char值转换为String值,然后再调用toInt()以便结果将是您所期望的:

fun main() {
var number = 789456123;
val string = number.toString()
println(string)
val numbers = string.map {
println(it)
it.toString().toInt()
}
numbers.forEach { println(it) }
}

相关内容

  • 没有找到相关文章

最新更新