Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 将大数字转换为字符串,然后拆分为单个数字会产生不相关的数字_Kotlin - Fatal编程技术网

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) }
}

这回答了问题吗?这回答了问题吗?