我是Scala的新手。我有一个包含以下数据的文件: 1:2:3 2:4:5 8:9:6
我需要按列(1:2:8)(2:4:9)(3:5:6)读取此文件,以找出每列的最小值。如何逐列阅读并将其放在单独的数组中?
答案 0 :(得分:2)
按行读取文件,将行拆分为列,然后使用transpose
:
scala> val file="1:2:3 2:4:5 8:9:6"
file: String = 1:2:3 2:4:5 8:9:6
scala> file.split(" ")
res1: Array[String] = Array(1:2:3, 2:4:5, 8:9:6)
scala> file.split(" ").map(_.split(":"))
res2: Array[Array[String]] = Array(Array(1, 2, 3), Array(2, 4, 5), Array(8, 9, 6))
scala> file.split(" ").map(_.split(":")).transpose
res3: Array[Array[String]] = Array(Array(1, 2, 8), Array(2, 4, 9), Array(3, 5, 6))
scala> file.split(" ").map(_.split(":")).transpose.map(_.min)
res4: Array[String] = Array(1, 2, 3)