利用java8的stream函数式编程进行处理

1.实现字母分离

map将整个字符串当成一个单词流来处理

Map<String[], Long> collect14 = Stream.of("hello word how are you")
.map(o -> o.split(""))
// .flatMap(Arrays::stream)
.collect(Collectors.groupingBy(o -> o, Collectors.counting()));
System.out.println(JSONObject.toJSONString(collect14));

输出:{["h","e","l","l","o"," ","w","o","r","d"," ","h","o","w"," ","a","r","e"," ","y","o","u"]:1}

2.实现字符串中字母重复频率统计,利用flatMap对流进行扁平化处理(flatMap与map的不同见java8 stream编程第6点图解)

Map<String, Long> collect14 = Stream.of("hello word how are you")
.map(o -> o.split(""))
.flatMap(Arrays::stream)//将前面得到的带大括号的单词流转为字符流
.collect(Collectors.groupingBy(o -> o, Collectors.counting()));
System.out.println(JSONObject.toJSONString(collect14));

输出:{" ":4,"a":1,"r":2,"d":1,"u":1,"e":2,"w":2,"h":2,"y":1,"l":2,"o":4}

3.将map的entry转为stream,对map中的kv进行过滤

String collect14 = Stream.of("hello word how are you")
.map(o -> o.split(""))
.flatMap(Arrays::stream)
.collect(Collectors.groupingBy(o -> o, Collectors.counting()))
.entrySet()
.stream()
.filter(o -> o.getValue() == 2)
.limit(1)
.map(o -> o.getKey())
.collect(Collectors.joining());
System.out.println(collect14);

输出:r

java8 查找字符串中首次出现2次的字母的更多相关文章

  1. C语言strchr()函数:查找某字符在字符串中首次出现的位置

    头文件:#include <string.h> strchr() 用来查找某字符在字符串中首次出现的位置,其原型为:    char * strchr (const char *str, ...

  2. php字符串查找函数 php查找字符串中出现的次数函数substr_count,判断字符串中是否包含另一个字符串函数strpos

    php字符串查找函数 php查找字符串中出现的次数函数substr_count,判断字符串中是否包含另一个字符串函数strpossubstr_count($haystack, $needle [,$o ...

  3. JS对象 indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。

    返回指定的字符串首次出现的位置 indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置. 语法 stringObject.indexOf(substring, startpos) 参 ...

  4. Javascript 查找字符串中出现最多的字符和出现的次数

    <script type="text/javascript"> //查找字符串中出现最多的字符和出现的次数 var str = 'Thatwheneying its o ...

  5. C语言strstr()函数:返回字符串中首次出现子串的地址

    今天又学到了一个函数 头文件:#include <string.h> strstr()函数用来检索子串在字符串中首次出现的位置,其原型为:    char *strstr( char *s ...

  6. JS查找字符串中出现次数最多的字符

    本文给大家带来两种js中查找字符串中出现次数最多的字符,在这两种方法中小编推荐使用第二种,对js查找字符串出现次数的相关知识感兴趣的朋友一起看看吧   在一个字符串中,如 'zhaochucichuz ...

  7. ZT 查找字符串中连续最长的数字串

    查找字符串中连续最长的数字串 有俩方法,1)比较好理解一些.2)晦涩 1) /* 功能:在字符串中找出连续最长的数字串,并把这个串的长度返回, 并把这个最长数字串付给其中一个函数参数outputstr ...

  8. 使用 Java 查找字符串中出现次数最多的字符以及出现的次数?

    使用 Java 查找字符串中出现次数最多的字符以及出现的次数? import java.util.HashMap; import java.util.Map; public class TestStr ...

  9. 怎么用JS截取字符串中第一个和第二个字母间的部分?

    一.JS中用正则判断字符串是否有匹配正则的字符串部分,格式如下: /[a-zA-Z](.*?)[a-zA-Z]/.test('1a123d45678901a2') “.test”前面的部分是正则表达式 ...

随机推荐

  1. Delphi 算术运算符与算术表达式

  2. asp.net WebApi WebApiConfig.cs Web API 配置和服务

    public static void Register(HttpConfiguration config) { ............................... var jsonSett ...

  3. Win7 Linux双系统,恢复Linux启动项

    在一台电脑上安装Win7 Centos双系统,先安装Win,再安装Centos7.装完后,丢失Linux启动项. 恢复步骤,下载EasyBCD,添加新条目,操作系统选择Linux/BSD,类型选择GR ...

  4. 5月Linux市场Steam 份额在增长

    随着新的一个月的开始,Valve公布了上个月的软件/硬件调查数据.在2019年5月,Steam Linux的使用率按百分比略微上升. 上个月,运行Linux的Steam用户比例(根据有争议的Steam ...

  5. 苹果预热 WWDC 2019

    Erika Hairston 是一位来自旧金山的 23 岁耶鲁大学毕业生,她的首款 app Zimela 刚刚上线.这款应用主要为了宣传科技行业的多样性.Hairston 设计的 Zimela 通过建 ...

  6. AIX查看系统日志

    1.查看系统启动日志 在AIX中可以使用alog命令来查看系统日志.   启动日志: /var/adm/ras/bootlog /var/adm/ras/bosinstlog /var/adm/ras ...

  7. RHEL6本地YUM源配置

    1.挂载本地光盘到系统   1)通过光驱将系统盘挂载到某个目录 [root@cluster01 ~]# mkdir   /mnt/cdrom [root@cluster01 ~]# mount -t ...

  8. nginx的服务架构

    nginx服务架构 模块 习惯上将nginx的模块分成核心模块,HTTP模块,邮件模块,以及第三方模块 核心模块主要包含两类功能的支持,一类是主体功能,包括进程管理,权限管理错误日志解析,配置解析:另 ...

  9. eddx

    eddx是亿图绘图文件,可以使用EdrawSoft Edraw Max软件打开.这是一款流程图绘图软件,它内置丰富的预定义模板和例子,可以创建各种图示.包括商务绘图.工程及科学绘图.思维导图和数据库. ...

  10. Monty 大厅问题(Monty Hall Problem)也称作三门问题,出自美国大型游戏节目 Let's Make a Deal。

    Monty 大厅的问题陈述十分简单,但是它的答案看上去却是有悖常理.该问题不仅引起过很多争议,也经常出现在各种考试题中. Monty 大厅的游戏规则是这样的,如果你来参加这个节目,那么 (1)Mont ...