Java 统计字符串中每个字符出现的次数使用集合方法

 1 import java.util.HashMap;
 2 import java.util.Scanner;
 3 import java.util.Set;
 4 
 5 public class MapTest {
 6     public static void main(String[] args) {
 7         Scanner scanner = new Scanner(System.in);
 8         //键盘录入字符串
 9         System.out.println("请输入一串字符");
10         //创建字符串对象,存储键盘输入的值
11         String line = scanner.nextLine();
12         //创建HashMap集合,键是character,值是Inter
13         HashMap<Character, Integer> hm = new HashMap<Character, Integer>();
14         //循环遍历字符串,得到每个字符
15         for (int i = 0; i < line.length(); i++) {
16             //通过charAt方法,将字符串的索引值,作为键添加到HashMap集合中
17             char key = line.charAt(i);
18             //使用HashMap集合的get方法,对集合中的键(字符)进行判断
19             //创建Integer对象存储值
20             Integer value = hm.get(key);
21             //返回值为空,将字符作为键,1作为存储值
22             if (value == null) {
23                 hm.put(key, 1);
24             } else {
25                 //返回值不为空,说明此字符在集合中出现过,将字符作为键,值加一
26                 // 重新存储键(字符)和对应的值
27                 value++;
28                 hm.put(key, value);
29             }
30         }
31         //创建StringBuilder字符串序列
32         StringBuilder sb = new StringBuilder();
33         //创建set集合对象,通过keyset方法获取键
34         Set<Character> keyset = hm.keySet();
35         //增强for循环遍历,获取键所对应的值
36         for (Character key : keyset) {
37             //使用get方法获取到键所对应的值
38             Integer value = hm.get(key);
39             //对序列进行拼接,使用append方法
40             sb.append(key).append("(").append(value).append(")");
41         }
42         // 通过tostring方法返回StringBuilder此顺序中的数据的字符串,创建string对象接受此字符串
43         String result = sb.toString();
44         //打印结果
45         System.out.println(result);
46     }
47 }

 

上一篇:Install Visual Studio For Mac Preview


下一篇:洛谷 P1603 斯诺登的密码(JAVA)