Kotlin打印阵列内容的方式是什么?

Kotlin打印阵列内容的方式是什么?,kotlin,Kotlin,Kotlin打印阵列内容的方式是什么 class Solution { fun plusOne(digits: IntArray): IntArray { println(digits.toString()) // does not work println(Arrays.toString(digits)) // does work but its java way of doing for(i in 0 until digits.siz

Kotlin打印阵列内容的方式是什么

class Solution {
    fun plusOne(digits: IntArray): IntArray {

        println(digits.toString()) // does not work
        println(Arrays.toString(digits)) // does work but its java way of doing
        for(i in 0 until digits.size) {
           ...
        }

        return digits
    }
}
有没有类似于Arrays.toString()的kotlin方法?我只想查看内容以便调试。

尝试转换为列表

fun main() {
    val digits: IntArray = IntArray(10)
    println(digits.toList())  // or digits.asList()
}
输出:

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
您可以使用适用于所有类型阵列的函数

val位=intArrayOf(1,2,3,4)
val javaToString=Arrays.toString(数字)。也(::println)/[1,2,3,4]
val kotlinToString=digits.contentToString()。还(::println)/[1,2,3,4]
println(javaToString==kotlinToString)//true

这里是一个工作示例

有多种方法,根据您的需求,您可以使用任何方法。请注意,您不必为了打印而将其转换为列表,除非您在其他用例中需要它

println(arr.contentToString())

//this one prints number on each line
arr.forEach(::println)  // same as arr.forEach{println(it)}

您也可以使用
数组。toString
但是
contentToString()
很方便,而且它在内部调用
数组。toString

有很多方法可以实现。 一种方法是首先使用fold构建输出字符串,然后在函数中打印它:

val digits = intArrayOf(1,2,3,4,5,6,7)

digits.fold("[") { output, item -> "$output $item" }.also { println("$it ]") }
这将产生:

[ 1 2 3 4 5 6 7 ]

在做了更多的研究之后,我想在上述令人敬畏的答案中添加
joinToString()

val numbers = intArrayOf(1, 2, 3, 4, 5, 6)
println(numbers.joinToString()) 
这将打印以下输出:

1, 2, 3, 4, 5, 6
这还允许您添加前缀、后缀,如下所示:

println(numbers.joinToString(prefix = "{", postfix = "}"))
这将产生:

{1, 2, 3, 4, 5, 6}

println(digits.toList())
println(digits.contentToString())
感谢toList()和contentToString()都能工作@NeeK toList创建了一个列表,调用它的toString来生成字符串,它有丰富的资源。