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 }