统计字符出现次数:
- package com.kxg.TreeMap;
- import java.util.Scanner;
- import java.util.Set;
- import java.util.TreeMap;
- /*
- * 对键盘录入字符串进行统计。
- */
- public class TreeMapTest {
- public static void main(String[] args) {
- // 键盘录入字符串
- Scanner sc = new Scanner(System.in);
- System.out.println("请输入需要统计的字符串:");
- String line = sc.nextLine();
- // 把字符串转为字符数组
- char[] chs = line.toCharArray();
- // 定义一个TreeMap集合接受键值对
- TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();
- // 遍历字符数组,拿到集合中进行对比,因为第一次出现就是null,
- // 当为null时候,把字符的值换成1,然后存入集合中
- // 如果不为null,就增加键对应的值,再重新放入到集合中去,此时的值就会替换掉之前存储的
- for (char ch : chs) {
- Integer i = tm.get(ch);
- if (i == null) {
- tm.put(ch, 1);
- } else {
- i++;
- tm.put(ch, i);
- }
- }
- // 定义一个字符串缓冲区
- StringBuffer sb = new StringBuffer();
- // 遍历键值对,把键和值都添加到字符串缓冲区中
- Set<Character> set = tm.keySet();
- for (Character key : set) {
- Integer value = tm.get(key);
- sb.append(key).append("(").append(value).append(")");
- }
- // 把字符串缓冲区转为字符串,进行输出
- String s = sb.toString();
- // 按照字符自然顺序进行输出的
- System.out.println(s);
- }
- }
复制代码
|