欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > Scala课堂小结

Scala课堂小结

2025/2/6 23:42:27 来源:https://blog.csdn.net/2401_87076500/article/details/144719257  浏览:    关键词:Scala课堂小结

全文单词统计:

 可分为以下几个步骤:

 1.读取文件,得到很长的字符串

5ede209502944d618bebcd6aafe3cda7.png

 2.把字符串拆分成一个一个的单词

cb748d1e5ebf4f0c885f3cffade2b580.png

 3.统计每个单词出现的次数

745f567c66f141f0a837f9eb02ca4882.png

4.排序

c24d2ab1da13417890eaf2e3e55b1ea4.png 

 5.把结果写入到一个文件中

5c8e87c5dd06411fb28459ef4bc58b20.png

完整代码如下

 

import java.io.PrintWriter

 

import scala.io.Source

 

object 全文单词统计 {

 

  def main(args: Array[String]){

 

    //1.读入文件内容

 

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

 

    println(content)

 

    //2.把字符串拆分为一个一个的单词,保存到数组

 

    //正则表达式

 

    // \\:表示正则表达式

 

    // W:表示一个非字(不是一个字 eg:空格,逗号,句号……)

 

    // W+:多个非字

 

    val arr = content.split("\\W+")

 

    for(word <- arr){

 

      println(word)

 

    }

 

    //3.统计每个单词出现的次数

 

    val wordMap = scala.collection.mutable.Map[String,Int]()

 

    for(word <- arr){

 

      if(wordMap.contains(word)){

 

        wordMap(word) += 1

 

      }else{

 

        wordMap(word) = 1

 

      }

 

    }

 

    //4.排序。Map是无序,要对其进行排序,要先把数组转成序列。List,Array

    println(wordMap.toList)

    val orderWordList = wordMap.toList.sortWith((a,b)=> a._2 > b._2).filter(e=>e._1.length>2).slice(0,30)

    for (e <- orderWordList){

      println(e)

    }

    //5.把结果写到一个文件中

    for(e <- orderWordList){

      println(e)

    }

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

    for (e <- orderWordList) {

      writer.write(s"${e._1}: ${e._2}\n")

    }

    writer.close()

  }

}

b6f69bde12e942f68cba9997366222d1.png

 

版权声明:

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

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