在 Scala 中打印数组
Suraj P
2023年1月30日
-
使用
for
循环打印数组元素 -
使用
foreach
循环打印数组元素 -
使用
mkstring()
方法打印数组的元素 - 将数组转换为另一个 Scala 集合
-
使用
ScalaRunTime
对象打印数组的元素
数组是存储相似数据的数据结构/集合。在 Scala 中,数组等价于 Java native Arrays
。
当我们尝试在 Scala 中打印数组的内容时,我们会得到 Array.toString
方法的输出,在大多数情况下是对象 hashcode
。
本文将向你展示如何使用 Scala 以各种方式打印数组。
使用 for
循环打印数组元素
最常用的解决方案是在 Scala 中打印数组的 for
循环。我们遍历数组元素并一一打印它们。
这里数组索引用于访问元素。
语法:
for(i <- 0 to array_name.length-1)
print(array_name[i])
示例代码:
object MyClass {
def main(args: Array[String]):Unit= {
var marks = Array(97, 100, 69, 78, 40, 50, 99)
println("Array elements are : ")
for(i <- 0 to marks.length-1 )
print(marks(i) + " ")
}
}
输出:
Array elements are :
97 100 69 78 40 50 99
使用 foreach
循环打印数组元素
在 foreach
中,如果我们想在一行中输出,我们也可以写 print
或 printf
。
语法:
array_name.foreach(println)
示例代码:
object MyClass {
def main(args: Array[String]):Unit= {
var marks = Array(97, 100, 69, 78, 40, 50, 99)
println("Array elements are : ")
marks.foreach(println)
}
}
输出:
Array elements are :
97
100
69
78
40
50
99
下一个示例显示了一个可以轻松扩展到多维数组的循环概念。
示例代码:
object MyClass {
def main(args: Array[String]):Unit= {
var arr = Array(Array(11, 22, 33, 44, 55),
Array(111,222, 333, 444, 555))
for(i<- 0 to 1)
{
for(j<- 0 to 4)
{
print(" "+arr(i)(j))
}
println() //for empty line
}
}
}
输出:
11 22 33 44 55
111 222 333 444 555
使用 mkstring()
方法打印数组的元素
我们将首先将数组转换为字符串,然后打印该字符串。使用 mkstring()
方法将 Array 元素逐个元素转换为字符串表示形式。
示例代码:
object MyClass {
def main(args: Array[String]):Unit= {
var marks = Array(97, 100, 69, 78, 40, 50, 99)
print(marks.mkString(", "))
}
}
输出:
97, 100, 69, 78, 40, 50, 99
在 mkString()
中,我们通过 ,
来打印逗号分隔的输出。
将数组转换为另一个 Scala 集合
虽然这不是一个常用的解决方案,但我们可以将数组转换为另一个 Scala 集合,如 List
,然后直接打印它。我们将使用 toList
方法将数组转换为 List。
示例代码:
object MyClass {
def main(args: Array[String]):Unit= {
var marks = Array(97, 100, 69, 78, 40, 50, 99)
val l = marks.toList
print(l)
}
}
输出:
List(97, 100, 69, 78, 40, 50, 99)
使用 ScalaRunTime
对象打印数组的元素
另一种解决方案是使用 ScalaRunTime
对象。
示例代码:
object MyClass {
def main(args: Array[String]):Unit= {
var marks = Array(97, 100, 69, 78, 40, 50, 99)
print(runtime.ScalaRunTime.replStringOf(marks, marks.length))
}
}
输出:
Array(97, 100, 69, 78, 40, 50, 99)
作者: Suraj P