WordsCount

这个例子还是蛮具有代表性的,主要练习访问文件读取文件,Map键值对使用,foreach遍历,匿名函数

import java.io.File
import scala.io.Source

class WordsCount{
  def subdirs(dir: File): Iterator[File] = {
    val children = dir.listFiles.filter(_.isFile)
    children.toIterator
  }

  def getWordNum(file: Iterator[File]):scala.collection.mutable.Map[String, Int]={
    val wordsMap = scala.collection.mutable.Map[String, Int]()
      file.foreach(file => Source.fromFile(file).getLines().foreach(line=>line.split(" ").foreach(
        word=>{
          if (wordsMap.contains(word)){
            wordsMap(word)+=1
          }
          else{
            wordsMap(word)=1
          }
        }
      )))
    wordsMap
  }

}
object WordCount {
  def main(args: Array[String]): Unit = {
    val wc = new WordsCount()
    val dir = new File("E:\\scala")
    val wordsMap = wc.getWordNum(wc.subdirs(dir))
    for ((k, v) <- wordsMap)
    {
      println(k+":"+v)
    }
  }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏黑泽君的专栏

c语言基础学习04_条件判断语句

============================================================================= 涉及...

48610
来自专栏开发与安全

实现一些字符串操作标准库函数、解决一些字符串问题

一、实现字符串操作标准库函数 (1)、strcpy、strncpy、memmove、memcpy、memset、strlen、strncat 的实现 C++ C...

32590
来自专栏康怀帅的专栏

Redis string 类型

可以是字符串、整数或浮点,统称为元素。对字符串操作,对整数类型加减。 追加 set key value append key 1 get key 赋值 se...

31360
来自专栏听Allen瞎扯淡

Integer的highestOneBit方法源码解析

在读HashMap源码的时候,遇到了Integer的highestOneBit静态方法不是太理解,所以就读了一下源码,这里记录一下。

36310
来自专栏轻扬小栈

[半zz]迅雷笔试题

19030
来自专栏分布式系统进阶

linux内核源码 -- list链表

list是新队列的head指针, 包括的元素从原head队列的第一个元素到entry, head队列仅包括余下的元素

18810
来自专栏Samego开发资源

学习C语言基础知识 | 实践篇

26230
来自专栏Script Boy (CN-SIMO)

自动类型转换、强制类型转换、作用域、整型表数范围

一、变量的作用域 测试代码: public class Test1 { private static int value = 1; // 全...

20700
来自专栏闵开慧

java概念1

public static void main(String[] args) {//其中[]也可以写在args后面,args也可以随便写成其他字母,例如asd...

366110
来自专栏前端儿

表达式求值

ACM队的mdd想做一个计算器,但是,他要做的不仅仅是一计算一个A+B的计算器,他想实现随便输入一个表达式都能求出它的值的计算器,现在请你帮助他来实现这个计算器...

12920

扫码关注云+社区

领取腾讯云代金券