java如何在字符串中获取不同的字符及其数量
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,小编给大家分享一下java如何在字符串中获取不同的字符及其数量,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!如何在字符串中获取不同的字符及其数量这道题可以拆解为两个步骤,第一步,找出
千家信息网最后更新 2025年01月19日java如何在字符串中获取不同的字符及其数量
小编给大家分享一下java如何在字符串中获取不同的字符及其数量,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
如何在字符串中获取不同的字符及其数量
这道题可以拆解为两个步骤,第一步,找出不同的字符,第二步,统计出它们的数量。好像有点废话,是不是?那我先来一个答案吧。
public class DistinctCharsCount { public static void main(String[] args) { printDistinctCharsWithCount("itwanger"); printDistinctCharsWithCount("chenmowanger"); } private static void printDistinctCharsWithCount(String input) { MapcharsWithCountMap = 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) { MapcharsWithCountMap = new LinkedHashMap<>(); for (char c : input.toCharArray()) { charsWithCountMap.merge(c, 1, Integer::sum); } System.out.println(charsWithCountMap); }
有没有很厉害?一行代码就搞定。第一个参数为键,第二个参数为值,第三个参数是一个 BiFunction,意思是,如果键已经存在了,就重新根据 BiFunction 计算新的值。
如果字符是第一次出现,就赋值为 1;否则,就把之前的值 sum 1。
看完了这篇文章,相信你对"java如何在字符串中获取不同的字符及其数量"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
字符
数量
字符串
不同
参数
厉害
思路
篇文章
结果
不对
一目了然
一次性
一行
三个
两个
代码
多个
完了
废话
意思
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
和平精英国际服务器能玩吗
软件开发按功能点收费
农商银行软件开发
网络安全的要素包括
app软件开发服务合同
互联网和硬科技
hive 新建数据库
软件开发的基础知识和方法论证
有哪些免费的服务器
网络安全属于哪个法律范畴
qt中读取数据库最大值
磴口县开展网络安全宣传
服务器如何开端口
攀枝花网络技术有限公司
网络安全法的关键词
仿斗鱼直播软件开发会怎么样
铱迅数据库审计
微信抢红包开挂软件开发
r与mysql 连接数据库
公安网络安全自查情况
海南政务软件开发多少钱
服务器监控哪个公司的好
mircancer数据库
灰烬使者服务器怎么挣钱
怎么设置数据库时间
mssql数据库太大怎么办
文字翻译软件开发
2019网络安全周 第几界
男爵领域服务器如何和别的区
数据库文件不可以访问吗