给出下面的数组最简单的打印方法是什么?循环是一种选择,但是还有其他更简单的选择吗?
val array = arrayOf(arrayOf(1, 2),
arrayOf(3, 4),
arrayOf(5, 6, 7))
答案 0 :(得分:1)
具有内置功能:
val array = arrayOf(arrayOf(1, 2),
arrayOf(3, 4),
arrayOf(5, 6, 7))
println(array.joinToString(prefix = "[", postfix = "]") {
it.joinToString(prefix = "[", postfix = "]")
})
答案 1 :(得分:0)
1。使用标准库
val array = arrayOf(arrayOf(1, 2),
arrayOf(3, 4),
arrayOf(5, 6, 7))
print(Arrays.deepToString(array))
2。使用for循环
fun <T> print2DArray(twoDArray: Array<Array<T>>) {
for (i in 0 until twoDArray.size) {
for (j in 0 until twoDArray[i].size) {
print(twoDArray[i][j])
if (j != twoDArray[i].size - 1) print(" ")
}
if (i != twoDArray.size - 1) println()
}
}
val array = arrayOf(arrayOf(1, 2), arrayOf(3, 4), arrayOf(5, 6, 7)) print2DArray(array)
答案 2 :(得分:0)
只需执行以下操作
MyServerLister
答案 3 :(得分:-1)
这取决于您想要显示它的方式。
fun Array.contentDeepToString: String
返回此数组内容的字符串表示形式,就好像它是一个List一样。嵌套数组也被视为列表。 如果任何数组在任何嵌套级别上都包含自身,则该引用将呈现为“ [...]”以防止递归。
请注意,这是在后台使用Arrays.deepToString(array)
的内联函数。
然后使用array.contentDeepToString()
在输出中得到以下字符串:
[[1、2],[3、4],[5、6、7]]
我主要使用Array.joinToString
,它允许使用给定的分隔符并向每个元素应用转换来加入数组。来自文档:
从所有使用[separator]分隔并使用给定的[prefix]和[postfix](如果提供)分隔的元素中创建一个字符串。如果集合可能很大,则可以指定[limit]的非负值,在这种情况下,仅第一个[limit] 元素将被附加,然后是[截断的]字符串(默认为“ ...”)
在您的情况下,由于数组的每个项目都是子数组,因此您还必须使用对其进行转换
array.joinToString("\n") { subarray ->
subarray.joinToString()
}
这将为您提供输出:
1、2
3,4
5、6、7
您可以使用分隔符,前缀,后缀和转换参数来获得所需的格式。
contentDeepToString
和joinToString
在实现时都使用循环,请考虑到这一点。joinToString
也可用于Iterable
和Sequence