栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java8:使用字符串的字符数创建HashMap

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java8:使用字符串的字符数创建HashMap

具有完全的Unipre支持(Java 11+)1的最简单的方法来计算字符串中每个字符的出现次数:

String word = "AAABBB";Map<String, Long> charCount = word.prePoints().mapToObj(Character::toString)        .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));System.out.println(charCount);

1)答案的结尾是具有完整Unipre支持的Java 8版本。

输出量

{A=3, B=3}

更新: 对于Java 8+(不支持补充平面中的字符,例如emoji):

Map<String, Long> charCount = IntStream.range(0, word.length())        .mapToObj(i -> word.substring(i, i + 1))        .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));

更新2: 同样适用于Java 8+。

我误会了,以为

prePoints()
它是在Java
9之前才添加的。它是在Java
8中添加到
CharSequence
接口的,因此它不会
String
在Java
8 中的Javadoc 中显示,而在Java
9中为Javadoc的更高版本显示。



但是,

Character.toString​(intprePoint)
直到Java
11才添加该方法,因此要使用该
Character.toString​(charc)
方法,我们可以
chars()
在Java
8中使用:

Map<String, Long> charCount = word.chars().mapToObj(c -> Character.toString((char) c))        .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));

或完整的Unipre支持,包括。在Java
8中,我们可以使用补充平面

prePoints()
String(int[]prePoints, int offset, intcount)
构造函数:

Map<String, Long> charCount = word.prePoints()        .mapToObj(cp -> new String(new int[] { cp }, 0, 1))        .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/386168.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号