scala的统计词频

package test23

import java.io.PrintWriter

import scala.io.Source

object test {

def main(args: Array[String]): 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.Map[String,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()//结束写入

}

}

相关推荐
zgl_200537792 小时前
ZGLanguage 解析SQL数据血缘 之 Python + Echarts 显示SQL结构图
大数据·数据库·数据仓库·hadoop·sql·代码规范·源代码管理
NineData8 小时前
第三届数据库编程大赛-八强决赛成绩揭晓
数据库·算法·代码规范
LaiYoung_16 小时前
🛡️ 代码质量的“埃癸斯”:为什么你的项目需要这面更懂业务的 ESLint 神盾?
前端·代码规范·eslint
码界奇点1 天前
基于Spring Cloud微服务架构的电商系统设计与实现
spring cloud·微服务·架构·毕业设计·鸿蒙系统·源代码管理
码界奇点2 天前
基于Spring与Netty的分布式配置管理系统设计与实现
java·分布式·spring·毕业设计·源代码管理
夜雨深秋来2 天前
都2026年了你还不知道AI工程化!
人工智能·代码规范
码界奇点2 天前
基于Vue3与TypeScript的后台管理系统设计与实现
前端·javascript·typescript·vue·毕业设计·源代码管理
PPPHUANG5 天前
一次 CompletableFuture 误用,如何耗尽 IO 线程池并拖垮整个系统
java·后端·代码规范
zhouzhouya5 天前
码上星辰,人间烟火:我的2025
前端·程序员·代码规范
程序员Agions5 天前
程序员邪修手册:那些不能写进文档的骚操作
前端·后端·代码规范