Scala统计一个文件所有单词出现的次数
1 import scala.io.Source
2
3 object WordCount extends App {
4
5 val path = "C:\\Users\\Administrator\\Desktop\\ff\\fzsExample\\src"
6 val file = new File(path)
7 val files = file.listFiles().filter(_.isFile)
8 val mapData = scala.collection.mutable.Map[String, Int]()
9
10 def readFile(item : File): Unit = {
11 try {
12 Source.fromFile(item).getLines().flatMap(_.split("\\s+")).toList.map(x => {
13 mapData.get(x) match {
14 case Some(b) => mapData += ( x -> b.+(1))
15 case None => mapData += ( x -> 1)
16 }
17 })
18 }catch{
19 case e1: FileNotFoundException => println("FileNotFoundException")
20 case e2: RuntimeException => println("RuntimeException")
21 case e3: Exception => println("Exception")
22 }
23 }
24
25 files.map(readFile)
26 println(mapData)
方法二:
1 val wordlist = Source.fromFile(item).getLines().flatMap(line => line.split(" ")).map(word => (word, 1))
2 //方法一:先groupBy再map
3 wordlist.groupBy(_._1).map {
4 case (word, list) => (word, list.size)
5 }.foreach(println)
6
7 }
Scala统计一个文件所有单词出现的次数的更多相关文章
- 统计一个文件中出现字符'a'的次数
# -*- coding: utf-8 -*- #python 27 #xiaodeng #统计一个文件中出现字符'a'的次数 #http://www.cnblogs.com/hongten/p/ho ...
- N个任务掌握java系列之统计一篇文章中单词出现的次数
问题:统计一篇文章中单词出现的次数 思路: (1)将文章(一个字符串存储)按空格进行拆分(split)后,存储到一个字符串(单词)数组中. (2)定义一个Map,key是字符串类型,保存单词:valu ...
- python统计文本中每个单词出现的次数
.python统计文本中每个单词出现的次数: #coding=utf-8 __author__ = 'zcg' import collections import os with open('abc. ...
- java怎么实现统计一个字符串中字符出现的次数
问题:假设字符串仅仅保护a-z 的字母,java怎么实现统计一个字符串中字符出现的次数?而且,如果压缩后的字符数不小于原始字符数,则返回. 处理逻辑:首先拆分字符串,以拆分出的字符为key,以字符出现 ...
- 使用python脚本实现统计日志文件中的ip访问次数
使用python脚本实现统计日志文件中的ip访问次数,注意此脚本只适用ip在每行开头的日志文件,需要的朋友可以参考下 适用的日志格式: 106.45.185.214 - - [06/Aug/2014: ...
- shell统计一个文件里某行出现的次数并排序
话说有个aaa.txt文件,文件内容如下: aaaabbbbccccddddeeeeffffmmmmooooaaaaccccaaaabbbbddddaaaammmmbbbbaaaaoooo 然后面试题 ...
- 用C语言实现统计一个文件夹中各种文件的比例
<UNIX环境高级编程>中的程序清单4-7就介绍了如何实现递归地统计某个目录下面的文件!我刚开始看过它的代码后,觉得照着敲太没意思了,所以就合上书自己写了一遍!为此还写了一篇博文,这是博文 ...
- scala 删除一个文件夹以及其子目录和文件
/** * 删除一个文件夹,及其子目录 @param dir */ def deleteDir(dir: File): Unit = { val files = dir.listFiles() fil ...
- c语言统计一个文件中的单词,字符和行数
body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...
随机推荐
- Linux启动、停止宝塔
启动 /etc/init.d/bt start 停止 /etc/init.d/bt stop
- 【剑指Offer】滑动窗口的最大值 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 解题方法 暴力求解 单调递减队列 日期 题目地址:https://www ...
- hdu-4561 连续最大积( 水题)
http://acm.hdu.edu.cn/showproblem.php?pid=4561 求连续最大积. 他妈的狗逼思路到底咋说..... 思路是 %&*()*(&--))*)*& ...
- 【转】GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗?
在 GitHub 上混久了,经常听到 Pull Request,在 GitLab 上混久了,则经常 提起 Merge Request ,然而它们之间有不同吗?为什么要用两个不同的名称? 要追溯这两个名 ...
- Redis 实现了自己的 VM
Redis的VM(虚拟内存)机制就是暂时把不经常访问的数据(冷数据)从内存交换到磁盘中,从而腾出宝贵的内存空间用于其它需要访问的数据(热数据). Redis提高数据库容量的办法有两种: 1.一种是可以 ...
- 「算法笔记」期望 DP 入门
一.数学期望 1. 由来 在 \(17\) 世纪,有一个赌徒向法国著名数学家帕斯卡挑战,给他出了一道题目:甲乙两个人赌博,他们两人获胜的机率相等,比赛规则是先胜三局者为赢家,一共进行五局,赢家可以获得 ...
- 一个简单的js时钟
演示地址 代码 <html> <head> <title> Nonove js clock 时钟 </title> <script type=&q ...
- Java程序设计基础笔记 • 【第8章 方法】
全部章节 >>>> 本章目录 8.1 方法概述 8.1.1 方法的简介 8.1.2 方法的类 8.1.3 自定义方法简介 8.1.3 自定义方法调用 8.1.4 实践练习 ...
- 论文翻译:2020_Generative Adversarial Network based Acoustic Echo Cancellation
论文地址:http://www.interspeech2020.org/uploadfile/pdf/Thu-1-10-5.pdf 基于GAN的回声消除 摘要 生成对抗网络(GANs)已成为语音增强( ...
- RazorEngine.NetCore 相见恨晚,它让我彻底放弃了T4模板
在dbfrist 时代,用T4模板生成代码,貌似还没有感觉到别扭.但是到了codefrist 后,我想要实体生成生成备注,我就得想方设法的去把备注弄到数据库,然后 还要处理模型中类型像枚举这种属性,渐 ...