如何在Scala中打印数组值?我得到了不同的价值观

时间:2018-07-26 10:25:41

标签: scala

代码:

object Permutations extends App 
{          
    val ar=Array(1,2,3).combinations(2).foreach(println(_))
}

输出:

[I@378fd1ac

[I@49097b5d
[I@6e2c634b

我正在尝试执行此操作,但获得了其他一些值。

如何在Scala中打印数组值?可以帮忙打印吗?

2 个答案:

答案 0 :(得分:1)

您不能直接打印数组,如果尝试打印它将打印该数组的引用。

您快到了,只需遍历数组的数组,然后在单个数组上进行迭代,并显示如下所示的元素

Array(1,2,3).combinations(2).foreach(_.foreach(println))

或者只需将每个数组转换为字符串并显示如下所示

Array(1,2,3).combinations(2).foreach(x=>println(x.mkString(" ")))

希望这对您有帮助

答案 1 :(得分:0)

使用mkString

object Permutations extends App {
   Array(1,2,3).combinations(2).foreach(x => println(x.mkString(", ")))
}

Scala REPL

scala> Array(1,2,3).combinations(2).foreach(x => println(x.mkString(", ")))
1, 2
1, 3
2, 3

当数组实例直接用于内部println时。调用数组的toString方法,并产生类似[I@49097b5d的输出。因此,请使用mkString将数组实例转换为字符串。

Scala REPL

scala> println(Array(1, 2))
[I@2aadeb31

scala> Array(1, 2).mkString
res12: String = 12

scala> Array(1, 2).mkString(" ")
res13: String = 1 2

scala>