Scala的全文单词统计

全文单词统计:

可分为以下几个步骤:

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

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

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

4.排序

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

完整代码如下:

import java.io.PrintWriter

import scala.io.Source

object 全文单词统计 {

def main(args: ArrayString){

//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.MapString,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()

}

}

运行结果:

相关推荐
典典分享指南2 天前
用结构化数据管理产品知识库
scala·bash·batch·actionscript
Thomas21435 天前
scala 闭包
开发语言·后端·scala
江畔柳前堤5 天前
前台·中台·后台:2026年AI原生时代的架构全景图
开发语言·人工智能·算法·机器学习·架构·scala·ai-native
Thomas214313 天前
Java scala 数组 链表
java·链表·scala
江畔柳前堤15 天前
消息队列:从直觉到精通的完整认知地图
开发语言·人工智能·算法·机器学习·ruby on rails·scala
hopsky1 个月前
《Scala 学习手册》核心内容详解
人工智能·学习·scala
abcy0712131 个月前
scala playframework 搭建与新建controller教程
scala
lpfasd1231 个月前
编程语言榜单变迁分析
开发语言·后端·scala
戮漠summer2 个月前
Missing Semester 计算机教育中缺失的一课 Lecture 01 Shell
开发语言·后端·scala
醉熏的石头2 个月前
Ubuntu 中的编程语言(中)
linux·ubuntu·scala