- package heimaexam;
- import java.util.Scanner;
- import java.util.Set;
- import java.util.TreeMap;
- /*
- * "adsadasdsdsdxz",获取字符串中每一个字母出现的次数:a(2)b(1)...
- */
- public class TreeMapTest {
- 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[] ch = line.toCharArray();
- // 遍历
- for (char chr : ch) {
- Integer i = tm.get(chr);
- // 如果null;该键值不存在,把该字符作为键,1作为值存储
- if (i == null) {
- tm.put(chr, 1);
- } else {
- // 不是null;该键值存在,值加1,重写存储该键和值
- i++;
- tm.put(chr, 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(")");
- }
- //把字符串缓冲区转换为字符串输出
- System.out.println(sb.toString());
- }
- }
复制代码 |