java如何在字符串中获取不同的字符及其数量
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,小编给大家分享一下java如何在字符串中获取不同的字符及其数量,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!如何在字符串中获取不同的字符及其数量这道题可以拆解为两个步骤,第一步,找出
千家信息网最后更新 2026年11月02日java如何在字符串中获取不同的字符及其数量
小编给大家分享一下java如何在字符串中获取不同的字符及其数量,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
如何在字符串中获取不同的字符及其数量
这道题可以拆解为两个步骤,第一步,找出不同的字符,第二步,统计出它们的数量。好像有点废话,是不是?那我先来一个答案吧。
public class DistinctCharsCount { public static void main(String[] args) { printDistinctCharsWithCount("itwanger"); printDistinctCharsWithCount("chenmowanger"); } private static void printDistinctCharsWithCount(String input) { Map charsWithCountMap = new LinkedHashMap<>(); for (char c : input.toCharArray()) { Integer oldValue = charsWithCountMap.get(c); int newValue = (oldValue == null) ? 1 : Integer.sum(oldValue, 1); charsWithCountMap.put(c, newValue); } System.out.println(charsWithCountMap); } } 程序输出的结果是:
{i=1, t=1, w=1, a=1, n=1, g=1, e=1, r=1} {c=1, h=1, e=2, n=2, m=1, o=1, w=1, a=1, g=1, r=1}说一下我的思路:
1)声明一个 LinkedHashMap,也可以用 HashMap,不过前者可以保持字符串拆分后的顺序,结果看起来更一目了然。
为什么要用 Map 呢?因为 Map 的 key 是不允许重复的,刚好可以对重复的字符进行数量的累加。
2)把字符串拆分成字符,进行遍历。
3)如果 key 为 null 的话,就表明它的数量要 +1;否则的话,就在之前的值上 +1,然后重新 put 到 Map 中,这样就覆盖了之前的字符数量。
思路很清晰,对不对?忍不住给自己鼓个掌。
那,JDK 8 之后,Map 新增了一个很厉害的方法 merge(),一次性为多个键赋值:
private static void printDistinctCharsWithCountMerge(String input) { Map charsWithCountMap = new LinkedHashMap<>(); for (char c : input.toCharArray()) { charsWithCountMap.merge(c, 1, Integer::sum); } System.out.println(charsWithCountMap); } 有没有很厉害?一行代码就搞定。第一个参数为键,第二个参数为值,第三个参数是一个 BiFunction,意思是,如果键已经存在了,就重新根据 BiFunction 计算新的值。
如果字符是第一次出现,就赋值为 1;否则,就把之前的值 sum 1。
看完了这篇文章,相信你对"java如何在字符串中获取不同的字符及其数量"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
字符
数量
字符串
不同
参数
厉害
思路
篇文章
结果
不对
一目了然
一次性
一行
三个
两个
代码
多个
完了
废话
意思
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中智农互联网科技
互联网科技会
互联网科技社
互联网中国科技
期待互联网科技
广州宏创互联网科技
卓越科技(互联网 )
北京互联网络科技有限公司
赫美联合互联网科技
互联网科技股有哪些
卓越科技互联网 招聘
衡水科技产业互联网平台
青海省互联网新科技
恒银科技与互联网金融
互联网为啥属于高科技
厦门比较好的科技互联网公司
米聚互联网科技南京有限公司排面
科技互联网海报
有人说阿里系是互联网科技企业
互联网科技手抄报图片
互联网科技园
朗新科技与工业互联网
互联网科技公司的市场部门
深圳市运趣互联网科技有限公司
新兴科技互联网创新大赛颁奖典礼
产业互联网科技服务公司
互联网科技资金流入
互联网科技年终奖
互联网科技职业技能培训学校
科技互联网公司两年变化