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 }