JAVA中TreeMap集合筛选字母及每一个字符出现的次数

利用TreeMap对字符串进行排序

题目要求:

给出一个字符串:fjdjskgfhbsjkgjnsrgnaHNGKEURHGASLGNw5y74236720573。

要求:

  1. 化成字符串a(字符的个数)b()c()...

  2. 区分大小写

  3. 只读取字母

直接上代码:

import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
​
/**
 * @Author caozy
 * @Date 2020/1/10 18:18
 * @Version 1.0
 */
public class TestTreeMap {
    public static void main(String[] args) {
        //treemap  自动对key排序  格局map的特点,键无序
        //键用来存储字母,值用来存储字母出现的次数
        Map<Character, Integer> treeMap = new TreeMap<>();
        String str = "ngksfdghnsFNSDLIGNRSLGN57349856734856";
        Set<Character> set = treeMap.keySet();
        for(int i=0;i<str.length();i++){
            Character st = str.charAt(i);
            //根据ASCII值筛选出所有的字母
            if((st>='a' && st<='z')||st>='A' && st<='Z'){
                //立一个flag标识
                boolean flag = true;
                for(Character ch:set){
                    if(st==ch){//第一次添加该元素   个数为1
                        treeMap.put(ch,treeMap.get(ch)+1);
                        flag=false;
                    }
                }
                if(flag){//不是第一次添加,个数加1
                    treeMap.put(str.charAt(i),1);
                }
            }
        }
        for(Character ch:set){//根据题目要求遍历treemap集合
            System.out.print(ch+"("+treeMap.get(ch)+")");
        }
​
    }
}

  

 

TreeMap集合的特点

  1. 一个基于红黑树的实现

  2. jdk1.2开始

  3. 自动排序

欢迎补充。。。

 

原文地址:https://www.cnblogs.com/caozyblogs/p/12177723.html