Почему моя программа получает совершенно другое значение вместо цифры c? - PullRequest
0 голосов
/ 28 марта 2020
fun digitize(n:Long):IntArray {
    return n.toString().map(Character::getNumericValue).toIntArray().reversedArray()
}
fun main(){
    println(digitize(348597)
    )
}

Вывод: [I@4e50df2e

Я не уверен, что есть проблемы с IDE или моей программой.

Редактировать:

Использование .asList() решает проблему.

Ответы [ 2 ]

1 голос
/ 28 марта 2020

Ваша оцифровка возвращает IntArray, что на JVM означает int[]. Используя println, вы получите адрес.

Чтобы напечатать каждого члена IntArray, вам нужен contentToString (расширение) метод.


        fun digitize(n: Long): IntArray {
            return n.toString().map(Character::getNumericValue).toIntArray().reversedArray()
        }

        println(digitize(348597).contentToString())
0 голосов
/ 28 марта 2020

Использование as.List() решает проблему.

fun digitize(n:Long):IntArray {

    return n.toString().map(Character::getNumericValue).toIntArray().reversedArray()
}
fun main(){

    println(digitize(348597).asList())
}
...