java8写一个word count
题目背景
很多了解过大数据编程的基础的人都知道一个入门级程序:word count。
其计算思路是,将一串文本(一般都是英文文章),在java中表现出来就是一个字符串或者是一个文本(txt文件)。
该题是计算该字符串中相同单词的个数并打印出来。
java8解决方案
package org.feng.stream;import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.stream.Collectors;
import java.util.stream.Stream;/*** Created by Feng on 2019/10/4 14:58* CurrentProject's name is java8*/
public class WordCountDemo {public static void main(String[] args) {// 文件生成流// 遍历每一个单词出现的次数(简单的使用空格切割)// 读取txt文件;设置编码格式try(Stream<String> lines = Files.lines(Paths.get("resources/hello.txt"), Charset.defaultCharset())){// 将英文逗号、句号、感叹号全部替换为空格字符串lines.map(str -> str.replaceAll("[,]|[.]|[!]"," "))// 按照空格切割字符串.flatMap(line -> Arrays.stream(line.split(" ")))// 过滤掉包含的空字符串.filter(str -> !"".equals(str))// 使用String的toString方法,获取单词作为map的键;计算个数作为值.collect(Collectors.groupingBy(String::toString, Collectors.counting()))// 遍历Map<String, Integer>.forEach((k,v)->{System.out.println("k="+k+",v="+v);});} catch (IOException e) {e.printStackTrace();}}
}
测试文档txt
Hello everyone!
my name is feng jin song. I am come from xi'an, i like play pingpong and computer games.
Three month ago,i was leave my university life.
when i walked on the street, i always want see anyone who named xxx.
i also like java.
控制台输出
k=play,v=1
k=named,v=1
k=university,v=1
k=ago,v=1
k=xi'an,v=1
k=I,v=1
k=when,v=1
k=life,v=1
k=jin,v=1
k=see,v=1
k=computer,v=1
k=java,v=1
k=Hello,v=1
k=street,v=1
k=leave,v=1
k=and,v=1
k=feng,v=1
k=games,v=1
k=from,v=1
k=on,v=1
k=always,v=1
k=song,v=1
k=like,v=2
k=everyone,v=1
k=want,v=1
k=was,v=1
k=i,v=5
k=also,v=1
k=come,v=1
k=is,v=1
k=am,v=1
k=my,v=2
k=pingpong,v=1
k=Three,v=1
k=the,v=1
k=walked,v=1
k=month,v=1
k=anyone,v=1
k=name,v=1
k=xxx,v=1
k=who,v=1Process finished with exit code 0
总结
这个程序而言,使用的是java8中的Stream接口和Collectors工具接口。他们的组合是很强大的。值得我们去学习。
java8写一个word count相关推荐
- 用python来构建一个word文档-写文章
直接使用word文档已经难不倒大家了,有没有想过用python构建一个word文档写点文章呢?当然这个文章的框架需要我们用代码一点点的建立,在过程上有一点繁琐,一下子看不懂的小伙伴可以把它拆分成几个部 ...
- 写一个可以一键统一调整word文档格式的程序
要写一个可以一键统一调整 Word 文档格式的程序,可以使用 Microsoft Office Word 的 VBA 功能来实现. 步骤如下: 打开 Word 文档,在菜单栏中点击"开发人员 ...
- Java8之写一个装逼的函数式代码
Java8之将普通方法写一个装逼的函数式代码 首先看代码 下面的方法很简单就是从数据中找一个值,找到返回. @Testpublic void test2() {Integer [] c = new I ...
- 媳妇儿让我给她找一个PDF转word免费工具,找了半天我决定给她写一个出来^-^
之前我媳妇儿让我给她找一个PDF转WORD的免费工具,在网上找了半天发现要不就是收费,要不就是转化的格式混乱.既然网上不能找到好用的免费工具那就直接来写一个吧.人生苦短,我用python. 万能的py ...
- 用servlet写一个hello word
哈喽,你好呀.今天要分享的是如何通过servlet在网页上去写一个hello world,还记得我们计算机入门的第一个程序吗,步骤非常简单.但是今天写的这个hello world步骤就有点多啦,但是熟 ...
- word关闭未响应_写了两小时的文档没保存?!一个word小技巧来拯救
不知道大家有没有遇到过这样的情况: 写了好久的word文档没来的及保存突然崩溃了 刚保存好的文档不小心被删除.被覆盖 老Y相信不管是哪种情况,一旦遇上想死的心都有了. 其实word中有一个小技巧,可以 ...
- word中添加java代码怎么写_Java如何在word文档中写一个段落?
在Java编程中,如何在word文档中写一个段落? 注意:需要访问网址:http://poi.apache.org/download.html , 下载一个Apache POI软件包.这里下载最新版本 ...
- Word Count作业
Word Count作业 一.个人Gitee地址:https://gitee.com/Changyu-Guo 二.项目简介 该项目主要是模拟Linux上面的wc命令,基本要求如下: 命令格式: wc. ...
- 用 python+tkinter+有道云API 写一个自用的背单词软件
目录 导语 程序功能 需要用的工具 需要安装的python包 程序代码 功能类函数Functions 键盘响应 窗体设置 Sql连接 Gui程序打包 结语 参考文献 导语 最近在学英语,新单词需要反复 ...
最新文章
- Python之机器学习K-means算法实现
- 网站采用自建服务器的优点,企业自建网页的方法是怎样的,自建网站有哪些优点呢?...
- 路飞学城-python爬虫密训-第三章
- 许昌:让便捷支付成为智慧城市新名片
- azure云数据库_Microsoft Azure SQL数据库-分步创建教程
- RT-Thread Studio开发GD32VF103
- html一行文字布局,HTML页面文字布局与文字效果
- 三维实景建模技术在智慧交通领域的新发展与深入应用
- 教学小结:我这样帮助学生提出疑问
- C++ 高仿easyX图形库
- npm 报错 426 Upgrade Required
- O3DF执行董事Royal O’Brien:开源没有边界,所有共享的声音都会变成实际方向
- 正则表达式 基本汉字 特殊字符
- windows防火墙设置_详解关闭Windows防火墙操作技巧,让你彻底断开与外网的连接...
- k8s 证书过期解决
- 【数据分析与挖掘】天猫超市复购预测实战(含代码和数据集)
- JAVA毕设项目沙县小吃点餐系统(java+VUE+Mybatis+Maven+Mysql)
- 中国的IT培训班,到底有多赚钱?
- 手游SDK是什么意思,可以解决哪些问题?
- 【Unity】相机视锥体剔除算法