package 获取字符串中单字符出现次数;
import java.util.Scanner;
import java.util.TreeMap;
/*
* 需求:获取一个字符串中每一个字母出现的次数
* 分析:
* 1.定义一个字符串
* 2.定义一个map集合
* 3.遍历字符串得到每一个字符
* 4.首先那第一个字符往map集合中去找,看返回值
* 如果为null,说明该字符第一次出现则把该字符作为键,1作为值
* 如果不为null,说明该字符不是第一次出现则把值++,重新存放在键和值。
*/
public class MapDemo2 {
public static void main(String[] args) {
// 键盘录入要查询的字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入要查询的字符串");
String line = sc.nextLine();
// 创建treemap集合
TreeMap<Character, Integer> treeMap = new TreeMap<Character, Integer>();
// 将字符串转换数组
char[] chs = line.toCharArray();
// 遍历数组
for (char key : chs) {
Integer i = treeMap.get(key);
if (i == null) {
// 字符第一次进入直接存入
treeMap.put(key, 1);
} else {
i++;
treeMap.put(key, i);
}
}
// 输出集合元素按指定格式
StringBuilder stringBuilder = new StringBuilder();
for (Character key : treeMap.keySet()) {
Integer i = treeMap.get(key);
stringBuilder.append(key).append("(").append(i).append(") ");
// System.out.print(key + "(" + i + ") ");
}
System.out.println(stringBuilder.toString());
}
}