java怎么实现统计一个字符串中字符出现的次数
问题:假设字符串仅仅保护a-z 的字母,java怎么实现统计一个字符串中字符出现的次数?而且,如果压缩后的字符数不小于原始字符数,则返回。
处理逻辑:首先拆分字符串,以拆分出的字符为key,以字符出现次数为value,存入Map中。
源码如下:
1 import java.util.HashMap; 2 import java.util.Iterator; 3 import java.util.Map; 4 5 public class TestCompress { 6 7 public static void main(String[] args) { 8 String str = "aaabbbcccdfb"; 9 compress(str); 10 } 11 12 public static void compress(String str) { 13 Map<String, Integer> count = new HashMap<String, Integer>(); 14 String[] myStrs = str.split(""); 15 for (int i = 0; i < myStrs.length; i++) { 16 int totalNum = 1; 17 String currentStr = myStrs[i]; 18 if (count.containsKey(currentStr)) { 19 totalNum = count.get(currentStr) + 1; 20 } 21 count.put(currentStr, totalNum); 22 } 23 int num = count.size(); 24 System.out.println("压缩结果"); 25 if (num == myStrs.length) { 26 System.out.println("各个字母都不一样,直接返回"); 27 System.out.println(str); 28 return; 29 } 30 String result = ""; 31 Iterator<Map.Entry<String, Integer>> it = count.entrySet().iterator(); 32 while (it.hasNext()) { 33 Map.Entry<String, Integer> entry = it.next(); 34 result = result + entry.getKey() + entry.getValue(); 35 } 36 System.out.println(result); 37 } 38 }
运行结果:
1 压缩结果 2 a3b4c3d1f1
读后有收获,小礼物走一走,请作者喝咖啡。

作者:楼兰胡杨
本文版权归作者和博客园共有,欢迎转载,但请注明原文链接,并保留此段声明,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南