1. 字符串.split("分隔符"):把字符串用指定的分隔符,拆开成多个部分,保存在数组中。
从文件1.txt 中,读入内容。
Scala
val content=Source.fromFile("1.txt").mkString
// println(content)
把字符串中的每个单词,拆出去
正则表达式
\\W+: 大写字符W表示:非字(不是一个字的字符。列如:空格 逗号 句号 换行...)
+:一个或者多个
Scala
val arr=content.split("\\W+") //得到是一个字符串数组
统计词频
Scala
val m1=scala.collection.mutable.Map[String,Int]()
arr.foreach(word =>{
//检查是否出现过?
if (m1.contains(word)){
//把票数+1
m1(word)+=1
}else{
//票数为1
m1(word)=1
}
})
对于m1,它是一个Map(thank:10, is:5), 现在需要对它进行排序,把出现次数最多的放在最前面,然后再输出。
// (thank,10)
Scala
//只要排序之前的结果的前15个?在List中取出前15个?
val sortedM1 =m1.toList.sortWith((a,b)=>a._2>b._2).filter(a=>a._1.length>2).slice(0,15)
开始写入代码
Scala
val writer=new PrintWriter("2.txt")
//输出排序后的Map
//把结果保存到一个新的文件中
writer.println("统计的结果是:")
sortedM1.foreach { case (word, cishu) => writer.println(s"${word}: ${cishu}") }
writer.close()// 结束写入