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 }
复制代码

 

posted @   yub4by  阅读(119)  评论(0编辑  收藏  举报
编辑推荐:
· 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 让容器管理更轻松!
点击右上角即可分享
微信分享提示