1. 字符串.split("分隔符"):把字符串用指定的分隔符,拆开成多个部分,保存在数组中。
从文件1.txt 中,读入内容。
val content=Source.fromFile("1.txt").mkString
// println(content)
把字符串中的每个单词,拆出去 正则表达式\\W+: 大写字符W表示:非字(不是一个字的字符。列如:空格 逗号 句号 换行...)+:一个或者多个
val arr=content.split("\\W+") //得到是一个字符串数组
统计词频
val m1=scala.collection.mutable.Map[String,Int]()arr.foreach(word =>{//检查是否出现过?if (m1.contains(word)){//把票数+1m1(word)+=1}else{//票数为1m1(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)
开始写入代码
val writer=new PrintWriter("2.txt")//输出排序后的Map//把结果保存到一个新的文件中writer.println("统计的结果是:")sortedM1.foreach { case (word, cishu) => writer.println(s"${word}: ${cishu}") }writer.close()// 结束写入