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 }