在 Scala 中打印数组

Suraj P 2023年1月30日 2022年5月18日
  1. 使用 for 循环打印数组元素
  2. 使用 foreach 循环打印数组元素
  3. 使用 mkstring() 方法打印数组的元素
  4. 将数组转换为另一个 Scala 集合
  5. 使用 ScalaRunTime 对象打印数组的元素
在 Scala 中打印数组

数组是存储相似数据的数据结构/集合。在 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 中,如果我们想在一行中输出,我们也可以写 printprintf

语法:

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)
Author: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub

相关文章 - Scala Array