(一)从文件中读出内容
在scala中,涉及到文件读写的方法有很多,可以使用java.io下的工具包,也可以使用scala.io下的功能。
下面介绍source.fromFile这个方法。
格式:scala.io.Source.formFile(文件名)
作用:读入一个文件
package words
object words01 {
def main(args: Array[String]): Unit = {
//1.读入text.txt的内容 大大的长长的字符串
// Source.formFile().mkString
//2.对字符串进行拆分 把句子变一个一个单词
val content = scala.io.Source.fromFile("./text.txt").mkString
println(content)
//对字符串进行拆分
val rst = content.split(' ')
rst.foreach(println)
}
}
(二)写拆分单词统计个数
思路: 1.分隔出一个一个的单词。
2.建立一个Map,key是单词,value是次数。
3.遍历所有的单词,对每个单词来说:
判断单词是否存在,如果存在把对应的key+1; 否则就设置对应的key,且value为1
package words
object words01 {
def main(args: Array[String]): Unit = {
//1.读入text.txt的内容 大大的长长的字符串
// Source.formFile().mkString
//2.对字符串进行拆分 把句子变一个一个单词
val content = scala.io.Source.fromFile("./text.txt").mkString
println(content)
//对字符串进行拆分 使用split空格 对这个长长的字符串做拆分 得到了一个数组 每个元素都是一个单词
val rst = content.split(' ')
//3.空的容器保存键值对数据:键:单词,值:次数
val map = scala.collection.mutable.Map[String,Int]()
rst.foreach(word => {
//如果word在map中存在,就把值+1
if(map.contains(word)){
map (word) +=1
}
//如果word在map中不存在,就把值设1
else {
map(word) = 1
}
})
//打印统计结果
map.foreach(println)
}
}