scala统计学生成绩,读取csv文件,输出math、English、physics的最大值最小值平均值
时间: 2023-05-13 11:06:04 浏览: 160
Scala之文件读取、写入、控制台操作的方法示例
您好,以下是使用 Scala 读取 CSV 文件并统计数学、英语和物理成绩的最大值、最小值和平均值的代码:
```scala
import scala.io.Source
object ScoreAnalyzer {
def main(args: Array[String]): Unit = {
val filename = "scores.csv"
val lines = Source.fromFile(filename).getLines().toList
val header = lines.head.split(",").map(_.trim)
val data = lines.tail.map(_.split(",").map(_.trim.toDouble))
val mathScores = data.map(_(header.indexOf("math")))
val englishScores = data.map(_(header.indexOf("English")))
val physicsScores = data.map(_(header.indexOf("physics")))
val mathMax = mathScores.max
val mathMin = mathScores.min
val mathAvg = mathScores.sum / mathScores.length
val englishMax = englishScores.max
val englishMin = englishScores.min
val englishAvg = englishScores.sum / englishScores.length
val physicsMax = physicsScores.max
val physicsMin = physicsScores.min
val physicsAvg = physicsScores.sum / physicsScores.length
println(s"math: max=$mathMax, min=$mathMin, avg=$mathAvg")
println(s"English: max=$englishMax, min=$englishMin, avg=$englishAvg")
println(s"physics: max=$physicsMax, min=$physicsMin, avg=$physicsAvg")
}
}
```
请注意,这段代码假设 CSV 文件的第一行是标题行,包含 "math"、"English" 和 "physics" 这三个字段。如果您的 CSV 文件的格式不同,请相应地修改代码。
阅读全文