在 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