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

Nee*_*eeK 5 kotlin

打印 IntArray 内容的 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
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有类似于 Arrays.toString() 的 kotlin 方法?我只想查看用于调试目的的内容。

Nee*_*eeK 7

在做了更多研究之后,我想添加joinToString()上面很棒的答案:

val numbers = intArrayOf(1, 2, 3, 4, 5, 6)
println(numbers.joinToString()) 
Run Code Online (Sandbox Code Playgroud)

这将打印以下输出:

1, 2, 3, 4, 5, 6
Run Code Online (Sandbox Code Playgroud)

这还允许您添加您选择的前缀、后缀,如下所示:

println(numbers.joinToString(prefix = "{", postfix = "}"))
Run Code Online (Sandbox Code Playgroud)

这将输出:

{1, 2, 3, 4, 5, 6}
Run Code Online (Sandbox Code Playgroud)


Ani*_*ahu 5

您可以使用适用于所有类型数组的contentToString函数

val digits = intArrayOf(1,2,3,4)

val javaToString = Arrays.toString(digits).also(::println)    // [1, 2, 3, 4]
val kotlinToString = digits.contentToString().also(::println) // [1, 2, 3, 4]
println(javaToString == kotlinToString)                       // true
Run Code Online (Sandbox Code Playgroud)

这是一个工作示例https://pl.kotl.in/dUu_aioq0


sid*_*ate 5

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

println(arr.contentToString())

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

也可以用Arrays.toString但是contentToString()很方便,而且它内部调用Arrays.toString