您的位置:首页 > 娱乐 > 明星 > 重庆在线高校开放课程平台_外贸网络推广专员_湖南官网网站推广软件_全球十大搜索引擎排名及网址

重庆在线高校开放课程平台_外贸网络推广专员_湖南官网网站推广软件_全球十大搜索引擎排名及网址

2025/1/16 16:40:53 来源:https://blog.csdn.net/2303_82118663/article/details/144086029  浏览:    关键词:重庆在线高校开放课程平台_外贸网络推广专员_湖南官网网站推广软件_全球十大搜索引擎排名及网址
重庆在线高校开放课程平台_外贸网络推广专员_湖南官网网站推广软件_全球十大搜索引擎排名及网址
目标:统计词频
  • 从文件1.txt ,读取内容,保存在一个字符串中
  • 统计字符串中,每个单词出现的频率
  • 对结果进行排序
  • 把最后的结果写入一个新的文件
import java.io.PrintWriter
import scala.io.Source//知识点:
//1.字符串,split("分隔符"):把字符串用指定的分隔符,拆分成多个部分,保存在数组中。
object ob7 {def main(args: Array[String]): Unit = {//从文件1.txt中读取内容val content = Source.fromFile("1.txt").mkString
//    println(content)//把字符串中的每个单词,拆出来//    val arr = "thank you very much".split("")//正则表达式//\\w+:大写字符W表示:非字(不是一个字的字符。例如:空格 逗号 句号 换行 ...)//+: 一个或者多个var arr = content.split("\\W+") //得到是一个字符串数组
//    arr.foreach(println)//如果有一个字符串数组:
//    val arr1 = Array("thank","you","very","much","thank","very")//统计词频val m1 = scala.collection.mutable.Map[String,Int]()//arr1.foreach(word => {arr.foreach(word => {//检查是否出现过?if( m1.contains( word )) {//把票数加一m1( word ) += 1} else {//票数为1m1( word ) = 1}})//对于m1,它是一个Map(thank:18,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)//输入排序后的MapsortedM1.foreach{ case(word,cishu) => println(s"${word}:${cishu}")}//把结果保存到一个新的文件中//开始写入val writer = new PrintWriter("3.txt")//输入排序后的Map//把结果保存到一个新的文件中writer.println("统计的结果是:")sortedM1.foreach{ case(word,cishu) => writer.println(s"${word}:${cishu}")}writer.close()//结果写入//    import java.io._
//    val writer = new BufferedWriter(new FileWriter("2.txt"))
//    sortedM1.foreach { case (word, cishu) =>
//      writer.write(s"${word}:${cishu}\n")
//    }
//    writer.close()}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com