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 }