利用scala语言写一个wordcount
时间: 2023-07-07 19:17:18 浏览: 103
好的,下面是一个简单的Scala代码实现Word Count:
```scala
import scala.io.Source
object WordCount {
def main(args: Array[String]) {
val filename = args(0)
val source = Source.fromFile(filename)
val lines = source.getLines().toList
source.close()
// 使用flatMap和split方法将所有单词展开成一个List
val words = lines.flatMap(_.split("\\W+"))
// 使用groupBy方法将相同的单词分组,并使用mapValues方法计算每个单词的数量
val wordCount = words.groupBy(identity).mapValues(_.length)
// 将结果按照单词数量倒序排列并打印输出
wordCount.toSeq.sortWith(_._2 > _._2).foreach {
case (word, count) => println(s"$word: $count")
}
}
}
```
说明:
1. 代码首先读取命令行参数中的文件名,并使用Scala的`Source`类从文件中读取所有行,并将它们存储在一个列表中。
2. 使用`flatMap`和`split`方法将所有行分成单个单词,并将它们展开成一个列表。
3. 使用`groupBy`方法将相同的单词分组,并使用`mapValues`方法计算每个单词的数量。
4. 将结果按照单词数量倒序排列,并使用`foreach`方法打印输出。
阅读全文