打印 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 方法?我只想查看用于调试目的的内容。
在做了更多研究之后,我想添加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)
您可以使用适用于所有类型数组的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
有多种方法,根据您的要求,您可以使用任何一种。请注意,您不必将其转换为 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
归档时间: |
|
查看次数: |
262 次 |
最近记录: |