要求⽤scala实现统计⽂本⽂件: 1.出现了多少单词 2.出现了每个单词出现的次数 3.再根据单词出现的次数倒序排列。
时间: 2023-12-09 15:06:05 浏览: 155
以下是用Scala实现统计文本文件中单词数量、每个单词出现次数和根据出现次数排序的代码:
```scala
import scala.io.Source
object WordCount {
def main(args: Array[String]): Unit = {
val filename = "input.txt" // 输入文件名
val lines = Source.fromFile(filename).getLines.toList // 读取文件内容
// 统计单词数量
val wordCount = lines.flatMap(_.split("\\W+")) // 将每行文本按非单词字符分割成单词列表
.filter(_.nonEmpty) // 过滤掉长度为0的单词
.map(_.toLowerCase) // 将单词转换为小写
.groupBy(identity) // 按照单词内容进行分组
.mapValues(_.size) // 计算每个单词出现的次数
// 输出结果
println("单词数量:" + wordCount.size)
println("每个单词出现次数:")
wordCount.toSeq.sortBy(-_._2) // 按照出现次数降序排序
.foreach { case (word, count) => println(word + " -> " + count) }
}
}
```
假设输入文件名为`input.txt`,可以在终端中使用以下命令编译并执行程序:
```
scalac WordCount.scala
scala WordCount
```
程序会输出单词数量和每个单词出现次数,并按照出现次数降序排列。
阅读全文