scala之全文单词统计

1.读取文件,得到很长的字符串

2.把字符串拆分成一个一个的单词

3.统计每个单词出现的次数

4.排序

复制代码
5.把结果保存到一个新文件中

完整代码

Scala 复制代码
import java.io.PrintWriter
import scala.io.Source
import scala.reflect.api.Printers

object test2 {
  def main(args: Array[String]): Unit = {


    //1.读入文件内容
    val content = Source.fromFile("1.txt").mkString
    println(content)

    //2.把字符串中的每个单词拆出,并保存到数组
    //W:表示一个非字(不是一个字 eg:空格,逗号,句号......)
    //W+:多个非字
    val arr = content.split("\\W+")


    //统计
    val m1 = scala.collection.mutable.Map[String, Int]()
    arr.foreach(word => {
      //检查是否出现过
      if (m1.contains(word)) {
        //把票数
        m1(word) += 1
      } else {
        m1(word) = 1
      }
    })

    //对于m1,他是一个Map,(thank:10,is:5),现在需要对它进行排序,把出现最多次数的放在最前面,然后再输出
    //只要排序之前的结果的前15个?在list中取出前15个?
    val sortedM1 = m1.toList.sortWith((a, b) => a._2 > b._2).filter(a => a._1.length > 2).slice(0, 15)
    //输出排序后的Map
    sortedM1.foreach { case (word, cishu) => println(s"${word}:${cishu}") }

    //把结果保存到一个新文件中:
    val writer = new PrintWriter("2.txt")
    writer.println("统计的结果是:")
    //输出排序后的Map
    //把结果保存到一个新的文件中
    sortedM1.foreach { case (word, cishu) => writer.println(s"${word}:${cishu}") }
    writer.close()
  }

}

运行结果

相关推荐
zh路西法几秒前
【离策略强化学习】DDPG、TD3 与 SAC:核心公式推导与源码解析
python·强化学习·ddpg·td3·sb3·off-policy·sac
tianbin911几秒前
大模型训练全流程中,API聚合网关如何解决多模型调度难题
网络·后端
靠沿2 分钟前
MySQL数据库基础——事务
java·数据库·mysql
秋秋小事2 分钟前
python 数据契约层FastAPI+Pydantic(一)
python
AIFQuant2 分钟前
Python港股实时行情API接入:恒生股票数据获取与AH股溢价监控实战
开发语言·数据库·python·金融·实时数据api
蒲公英eric3 分钟前
线性回归与正则化:从最小二乘到岭回归、LASSO
人工智能·算法·数学建模·线性回归·岭回归·最小二乘·lasso
朝阳资本论9 分钟前
小马智行杀入伦敦牵手Uber,中国Robotaxi出海怎么打?
python
外收内放12 分钟前
Python基础语法练习题(70)
开发语言·python
老唐77713 分钟前
Agent 开发入门教程:从零搭建一个 Python AI Agent
人工智能·python·深度学习·langchain·大模型·agent·智能体
mldong29 分钟前
工作流引擎的委托代批:一张单,两个办理人
后端·架构