JavaSE-16.1.4【案例-统计字符串中每个字符出现的次数】
1 package day7.lesson1.anli5; 2 3 import java.util.*; 4 5 /* 6 1.5.5 案例-统计字符串中每个字符出现的次数 7 键盘录入一个字符串,要求统计字符串中每个字符串出现的次数。 8 举例:键盘录入“aababcabcdabcde” 在控制台输出:“a(5)b(4)c(3)d(2)e(1)” 9 10 分析: 11 可将输出结果分成几部分来看:a(5),b(4),c(3),d(2),e(1) 12 每部分由字符和字符出现的次数组成 13 通过HashMap集合来存储:键是字符,值是字符出现的次数 14 注意:<>泛型中只能放引用数据类型 15 所以要用基本数据类型的包装类 16 char --> Character int --> Integer 17 */ 18 public class HashMapDemo { 19 public static void main(String[] args) { 20 Scanner sc = new Scanner(System.in); 21 System.out.println("请输入字符串:"); 22 String input = sc.nextLine(); 23 24 // HashMap<Character, Integer> hashMap = new HashMap<>(); //无序 25 TreeMap<Character, Integer> hashMap = new TreeMap<>(); //有序 26 27 for (int i=0; i<input.length(); i++){ 28 char key = input.charAt(i); 29 Integer value = hashMap.get(key); //自动装箱,char-->Character 30 if(value == null){ //说明该字符再HashMap集合中不存在 31 hashMap.put(key, 1); //字符第一次出现,值(次数)为1 32 }else { //说明该字符再HashMap集合中已存在 33 value++; //值(字符出现次数)+1 34 hashMap.put(key, value); //覆盖掉原值(原来次数) 35 } 36 } 37 38 StringBuilder sb = new StringBuilder(); 39 Set<Character> keySet = hashMap.keySet(); 40 for (Character key: keySet){ 41 Integer value = hashMap.get(key); 42 sb.append(key).append("(").append(value).append(")"); 43 } 44 String result = sb.toString(); 45 System.out.println(result); 46 } 47 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!