Source.fromFile("input\\input.txt").
getLines().toList.
flatMap(_.split(" ")).
groupBy(kv => kv).map(kv => (kv._1, kv._2.length)).
toList.sortBy(kv => kv._2)(Ordering.Int.reverse).
foreach(kv => print(kv._1 + "->" + kv._2 + " "))
缺点:Source的资源关不了
最好这样分开写
val source: BufferedSource = Source.fromFile("input\\input.txt")
val datalist: List[String] = source.getLines().toList
source.close() //关闭资源
datalist.
flatMap(_.split(" ")).
groupBy(kv => kv).map(kv => (kv._1, kv._2.length)).
toList.sortBy(kv => kv._2)(Ordering.Int.reverse).
foreach(kv => print(kv._1 + "->" + kv._2 + " "))
该博客探讨了Scala中对Source.fromFile的使用,指出了未关闭资源的潜在问题,并提供了解决方案。通过分开写代码,确保了资源在使用完毕后被正确关闭。内容涉及字符串处理、分组、排序及打印操作。
1468

被折叠的 条评论
为什么被折叠?



