scala的统计词频

package test23

import java.io.PrintWriter

import scala.io.Source

object test {

def main(args: ArrayString): Unit = {

//从文件1.txt中,读取内容

val content = Source.fromFile("1.txt").mkString

println(content)

//把字符串中的每个单词,拆出来

//正则表达式

//\\w+:大写字符表示:非字(不是一个字的字符。例如:空格,逗号,句号,换行。。。。)

// +:一个或者多个

val arr = content.split("\\w ")//得到一个字符串数组

arr.foreach(println)

//如果有一个字符串数组:

val arr1= Array("thank","you","much","thank","very")

val m1 = scala.collection.mutable.MapString,Int()

arr1.foreach(word =>{

//检查是否出现过

if(m1.contains(word)){

//把票数+1

m1(word)+=1

}else{

//票数为1

m1(word) = 1

}

})

//对于m1,他是一个Map(thank:10,is:5),现在需要对他进行排序,把出现次数最多的放在最前面,然后再输出

//(thank,10)

//只要排序之前结果的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, count) =>

// println(s"{word}:{count}")

//4.把结果保存到一个新文件中

//开始写入

val writer = new PrintWriter("3.txt")

//排序后输出Map

//把结果保存到一个新文件中

writer.println("统计结果是:")

sortedM1.foreach{case(word,cishu)=>println(s"{word}:{cishu}")}

writer.close()//结束写入

}

}

相关推荐
学渣超3 小时前
记一次复杂业务功能重构——从过程式长链路,到模板方法构建体系
java·架构·代码规范
梦想平凡1 天前
百游棋牌源代码开发搭建教程(五):房间创建、座位分配与请求幂等实现
前端·javascript·数据库·源代码管理
天涯浪客1 天前
我的漏洞扫描器,把被测项目的源码写坏了
代码规范
事圆则缓1 天前
遗留项目改造实战指南:从可读性、代码质量到性能和 AI 约束
android·ai·代码规范
开开心心就好1 天前
清理此电脑网盘图标工具,开源免费好用
网络·网络协议·tcp/ip·智能手机·电脑·scala·erlang
乱码三千1 天前
开发了一套AI智能体协作知识体系
人工智能·架构·代码规范
梦想平凡2 天前
百游棋牌源代码开发搭建教程(一):全端工程结构、开发环境配置与首次启动验证
前端·javascript·源代码管理
Ramble_Naylor3 天前
Forgejo
ci/cd·团队开发·产品经理·源代码管理
czhc11400756633 天前
2026-09-10 综合博客:异步异常 + 排查核实思维
命令模式
梦梦代码精4 天前
《回收租赁系统技术选型避坑指南:业务闭环与二开自由度详解》
开发语言·低代码·docker·开源·代码规范