尝试一下:String fileName = "file.txt";

try {

Map wordCount = Files.lines(Path.of(fileName))

.flatMap(line -> Arrays.stream(line.split("\\s+")))

.filter(w->w.matches("[a-zA-Z]+"))

.sorted(Comparator.comparing(String::length)

.thenComparing(String.CASE_INSENSITIVE_ORDER))

.collect(Collectors.groupingBy(w -> w,

LinkedHashMap::new, Collectors.counting()));

wordCount.entrySet().forEach(System.out::println);

}catch (Exception e) {

e.printStackTrace();

}

这相对简单。它只是在空白处分割并通过将单词放入地图(其中Key是单词,而Value是包含计数的long)来对单词进行计数。

我提供了一个过滤器,仅捕获字母以外的单词。它的工作方式是将Lines放入流中。然后使用String.split将每一行拆分为多个单词。由于这会创建一个数组,因此flatMap会将所有这些单独的单词流转换为单个单词流,并在其中对其进行处理。它的作用是Collectors.groupingBy,它将为每个键以特定方式将值分组。在这种情况下,我指定了Collectors.counting()方法来增加每次出现键(即单词)时的计数。

作为一种选择,我先对单词进行长度排序,然后按字母顺序排序,忽略大小写。

java 流拆分_java - 在Java流中拆分字符串? - SO中文参考 - www.soinside.com相关推荐

  1. ldap java 对象 存储_java - 修改UID在LDAP存储库 - SO中文参考 - www.soinside.com

    我使用LdapTemplate对LDAP库开发应用程序的春天启动了获取用户信息. 我使用的用户电子邮件作为UID,当用户更新他的电子邮件,我必须得更新自己的UID.问题是,下面的工作方法,对所有的人域 ...

  2. Java点击按钮加一行数据_java - 单击按钮java时如何从txt文件绘制下一行? - SO中文参考 - www.soinside.com...

    单击按钮java时如何从txt文件绘制下一行? 问题描述 投票:0回答:1 import javax.swing.*; import java.awt.*; import java.awt.event ...

  3. java实现rle游程编码,java - 我如何解决这个游程编码算法的解释? - SO中文参考 - www.soinside.com...

    对于学校,我必须在java中构建一个使用RLE(行程编码)压缩数组的方法.我无法在网上找到解决方案,因为我的老师希望我自己解决问题.不幸的是,我不能这样做,因为我是一个忙碌的人,有一些繁忙的计划. R ...

  4. oracle中获取列的值,oracle - Oracle-SQL从具有特定列和值的所有表中获取数据 - SO中文参考 - www.soinside.com...

    假设我们有一个表ACCOUNT,其中的CUST_ID列如下:SQL> SELECT OWNER, A.TABLE_NAME, COLUMN_NAME FROM 2 ALL_TAB_COLS A ...

  5. android数据截取字符串数组,android - 从Android Studio中的字符串数组获取特定字符串 - SO中文参考 - www.soinside.com...

    我有一个字符串数组(在strings.xml中,我在其中收集所有游戏) ... Fortnite CounterStrike: Global Offensive Minecraft Minigames ...

  6. psv 进php,php - 使用htaccess将网站http重定向到lapsvel中的https - SO中文参考 - www.soinside.com...

    我有一个Laravel项目.我用Godaddy.最近,我在我的网站上安装了SSL证书,所以当我在浏览器中键入https://example.com时它可以工作,但是当我写example.com时,它通 ...

  7. python求年利率_python-3.x - 如何在python 3中计算年利率 - SO中文参考 - www.soinside.com...

    这是代码:P = int(input("Enter starting principle please.\n")) n = int(input("Enter Compou ...

  8. python画曲线的趋势线_python - 在时间序列图中添加趋势线 - SO中文参考 - www.soinside.com...

    如果通过"趋势线"表示文字行,那么您可能希望对数据进行线性回归.在sklearn的provides this functionality python. 从上面的超链接示例: im ...

  9. java直接量_Java教程:Java直接量(字面量)

    Java教程直接量是指在程序中通过源代码直接给出的值,例如在int a = 5;代码中,为变量 a 所分配的初始值 5 就是一个直接量. 直接量的类型 并不是所有的数据类型都可以指定直接量,能指定直接 ...

  10. SpringBoot中文文档 SpringBoot中文参考指南 SpringBoot中文参考文档 springboot中文文档 springboot中文

    SpringBoot中文文档 SpringBoot中文参考指南 SpringBoot中文参考文档 springboot中文文档 springboot中文 SpringBoot中文文档 SpringBo ...

最新文章

  1. /* * 编程第二题(20分): 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第十次落地时,共经过多少米?第十次反弹多高? */
  2. Python的Requests库官方文档
  3. [归并][随机算法] JZOJ P3765 想法
  4. RBAC 基于角色的访问控制
  5. Java PipedInputStream close()方法与示例
  6. mysql中的删除语法错误_mysql – EXPLAIN中的SQL语法错误
  7. oracle删除一张表的sql语句,oracle删除表的语句
  8. PHP开发者最好的学习资源收集
  9. lambda表达式 java求和_java 8 stream、lambda表达式对list操作分组、过滤、求和、最值、排序、去重...
  10. c# combobox 绑定枚举方式
  11. 使用shell编写九九乘法表,mysql分库备份
  12. mysql 备份任务_设置mysql 定时备份任务
  13. 周杰伦新专辑预售热点传播分析报告概览
  14. kali linux安装vmware tools过程详解
  15. 关于ssm框架的外文文献及译文_学术小白应该如何高效阅读文献?
  16. android自定义多选框 带图片,Android自定义单选多选下拉列表的实例代码
  17. 帧中继环境中NBMA模式下OSPF的配置
  18. AVL树到底是什么?
  19. 基于php的养生食疗,夏季养生宜吃的8种食物
  20. css抄页面,如何正确的抄网页

热门文章

  1. 四 s5p4418 Android 对can总线的支持 支持波特率修改
  2. git迁移MySQL数据库_Centos7下Gitlab迁移数据库mysql过程
  3. x722网卡支持百兆吗_同样是无线网卡,为什么要选千兆的?
  4. 修改apk连接服务器地址,如何修改apk连接服务器地址
  5. 如何在大流量场景下云淡风轻地进行线上发布?
  6. 架构设计 | 基于消息中间件,图解柔性事务一致性
  7. xMedia来了!支付宝客户端的智能化“武器”
  8. ARPG手游性能分析报告:加载、GC、内存需重点关注
  9. SQL基础【四、Distinct】
  10. pip install jieba安装慢,安装失败,安装不解决办法