在scala中打印二维数组,如表格

时间:2014-11-18 18:24:28

标签: arrays scala multidimensional-array

我遇到二维数组问题。我希望数组就像一个表而不是说Array(),Array()。

这样的事情:

 ........
 ........
 ........
 ........     
 ........
 ........
 ........
 ........
 ........

 scala> val table = Array.fill(9,8)('.')
 table: Array[Array[Char]] = Array(Array(., ., ., ., ., ., ., .), Array(., ., ., ., ., ., ., .),     
 Array(., ., ., ., ., ., ., .), Array(., ., ., ., ., ., ., .), Array(., ., ., ., ., ., ., .),   
 Array(., ., ., ., ., ., ., .), Array(., ., ., ., ., ., ., .), Array(., ., ., ., ., ., ., .),   
 Array(., ., ., ., ., ., ., .))

2 个答案:

答案 0 :(得分:5)

您可以使用printprintlnforeach获得所需效果:

table foreach { row => row foreach print; println }

你也可以在集合上使用mkString方法,它连接列表的元素(没有分隔符,或者带有提供字符串分隔符的重载):

print(table.map(_.mkString).mkString("\n"))

答案 1 :(得分:0)

scala> val arr: Array[Array[Int]] = Array.ofDim(2,2)
val arr: Array[Array[Int]] = Array(Array(0, 0), Array(0, 0))

scala> arr.map(_.mkString(" ")).foreach(println)
0 0
0 0