获取一个字符串中每一个字母出现的次数使用map集合

时间:2023-01-04 08:08:27
 1 package 获取字符串中单字符出现次数;
 2 
 3 import java.util.Scanner;
 4 import java.util.TreeMap;
 5 
 6 /*
 7  * 需求:获取一个字符串中每一个字母出现的次数
 8  * 分析:
 9  *    1.定义一个字符串
10  *    2.定义一个map集合
11  *    3.遍历字符串得到每一个字符
12  *    4.首先那第一个字符往map集合中去找,看返回值
13  *                如果为null,说明该字符第一次出现则把该字符作为键,1作为值
14  *                如果不为null,说明该字符不是第一次出现则把值++,重新存放在键和值。
15  */
16 public class MapDemo2 {
17     public static void main(String[] args) {
18         // 键盘录入要查询的字符串
19         Scanner sc = new Scanner(System.in);
20         System.out.println("请输入要查询的字符串");
21         String line = sc.nextLine();
22         // 创建treemap集合
23         TreeMap<Character, Integer> treeMap = new TreeMap<Character, Integer>();
24         // 将字符串转换数组
25         char[] chs = line.toCharArray();
26         // 遍历数组
27         for (char key : chs) {
28             Integer i = treeMap.get(key);
29             if (i == null) {
30                 // 字符第一次进入直接存入
31                 treeMap.put(key, 1);
32             } else {
33                 i++;
34                 treeMap.put(key, i);
35             }
36         }
37         // 输出集合元素按指定格式
38         StringBuilder stringBuilder = new StringBuilder();
39         for (Character key : treeMap.keySet()) {
40             Integer i = treeMap.get(key);
41             stringBuilder.append(key).append("(").append(i).append(") ");
42             // System.out.print(key + "(" + i + ") ");
43         }
44         System.out.println(stringBuilder.toString());
45     }
46 }