java统计abacbacdadbc中的每个字母出现的次数,输出格式是:abcd

Posted 起个名字好难

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java统计abacbacdadbc中的每个字母出现的次数,输出格式是:abcd相关的知识,希望对你有一定的参考价值。

原文:http://www.open-open.com/code/view/1456919325625

 

import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
/*
 * 统计abacbacdadbc中的每个字母出现的次数,输出格式是:a(4)b(3)c(3)d(2)
 * 
 * 选中TreeMap的原因是:key不重复且按顺序排序取出
 * 
 * 思路:
 * 1.将字符串abacbacdadbc转换成字符数组
 * 2.分别取字符,与TreeMap中的key进行比较
 *   2.1 如果TreeMap中存在对应的字符,则取出并自增,再存入TreeMap
 *   2.2 如果TreeMap中不存在对应的字符,则直接存入该字符,value=1
 */

public class A3B1C2_TreeMapTest {

    public static void main(String[] args) {

        TreeMap<String, Integer> tm=new TreeMap<>();
        String string="abacbacdadbc";
        char[] ch=string.toCharArray();
        
        for(char r :ch){
            //tm.put(String.valueOf(r), 1);
            //System.out.println(r);    
            if(compareKey(r, tm))
            {
                int i=tm.get(String.valueOf(r));
                i++;
                tm.put(String.valueOf(r), i);
            }else {
                tm.put(String.valueOf(r), 1);
            }
        }
        System.out.println(tm);    
        Set<Map.Entry<String, Integer>> entrySet=tm.entrySet();
        Iterator<Map.Entry<String, Integer>> iterator=entrySet.iterator();
        while(iterator.hasNext()){
            Map.Entry<String, Integer> me=iterator.next();
            String key=me.getKey();
            int value=me.getValue();
            System.out.print(key+"("+value+")");            
        }
        
    }
    public static boolean compareKey(char c,TreeMap<String, Integer> treeMap){
        if (treeMap.containsKey(String.valueOf(c))) {
            return true;
        }
        return false;
    }

}

 

以上是关于java统计abacbacdadbc中的每个字母出现的次数,输出格式是:abcd的主要内容,如果未能解决你的问题,请参考以下文章

Java学习:输入一串字符串,分别统计出其中的中英文字母,空格,数字和其他字符的个数

Java获取字符串中字母出现的个数

LeetCode 242. 有效的字母异位词

怎么统计输入的一个字符串中每个字母出现的次数?

文本项目系列[2]——字符串元音字母次数统计

Java上机实现统计某一目录下每个文件中出现的字母个数、数字个数、空格个数及行数?