键盘输入一个字符串,统计每个字符出现的次数,并且按照结果格式输出。
/*
* 需求:"aababcabcdabcde",获取字符串中每一个字母出现的次数,要求结果输出格式是:
* a(5)b(4)c(3)d(2)e(1)
*
* 分析:
* A:定义一个字符串
* B:定义一个TreeMap集合
* 键:Character
* 值:Integer
* C:把字符串转换为字符数组
* D:遍历字符数组,得到每一个字符
* E:拿刚才得到的字符作为键去集合中找,看返回值:
* 是null:说明该键不存在,就把该字符作为键,1作为值存储
* 不是null:说明该键存在,就把值加1,然后重新存储该键和值
* F:定义字符串缓冲区变量
* G:遍历集合,得到键和值,按照要求拼接处理
* H:把字符串缓冲区转换为字符串输出
*/
/* * 需求:"aababcabcdabcde",获取字符串中每一个字母出现的次数,要求结果输出格式是: * a(5)b(4)c(3)d(2)e(1) * * 分析: * A:定义一个字符串 * B:定义一个TreeMap集合 * 键:Character * 值:Integer * C:把字符串转换为字符数组 * D:遍历字符数组,得到每一个字符 * E:拿刚才得到的字符作为键去集合中找,看返回值: * 是null:说明该键不存在,就把该字符作为键,1作为值存储 * 不是null:说明该键存在,就把值加1,然后重新存储该键和值 * F:定义字符串缓冲区变量 * G:遍历集合,得到键和值,按照要求拼接处理 * H:把字符串缓冲区转换为字符串输出 */ package cn.itcast_02; import java.util.Scanner; import java.util.Set; import java.util.TreeMap; public class TreeMapDemo { public static void main(String[] args) { // 定义一个字符串:键盘录入方式 Scanner sc = new Scanner(System.in); System.out.println("请输入一个字符串:"); String line = sc.nextLine(); // 定义一个TreeMap集合 TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>(); // 把字符串转换为字符数组 char[] chs = line.toCharArray(); // 遍历字符数组,得到每一个字符 for (char ch : chs) { // 拿刚才得到的字符作为键去集合中找,看返回值 Integer i = tm.get(ch); // 是null:说明该键不存在,就把该字符作为键,1作为值存储 if (i == null) { tm.put(ch, 1); } else { // 不是null:说明该键存在,就把值加1,然后重新存储该键和值 ++i; tm.put(ch, i); } } // 定义字符串缓冲区变量 StringBuilder sb = new StringBuilder(); // 遍历集合,得到键和值,按照要求拼接处理 Set<Character> set = tm.keySet(); for (Character key : set) { Integer value = tm.get(key); sb.append(key).append("(").append(value).append(")"); } // 把字符串缓冲区转换为字符串输出 String resulut = sb.toString(); System.out.println("resulut:" + resulut); } }