统计一段字符串中每个字符出现的次数,用map来实现是最简单的吗?

统计一段字符串中每个字符出现的次数,用map来实现是最简单的吗?

直接用ascii对应下表来实现字符计数功能就好了

 public class DemoTest {
    public static void main(String[] args) {
        int[] dir = new int [256];
        for(int i=0;i<256;i++){
            dir[i]=0;
        }
        String string="fdasjfksajfklsajfldas.asdfsadfjpiwe]wqdsafdsa][]afsda.fsafsa21341234";
        char[] charArray = string.toCharArray();
        for(int i =0;i<charArray.length;i++){
            int index = (int)charArray[i];
            dir[index]+=1;
        }
        for(int num=0;num<256;num++){
            if(dir[num]!=0)
            System.out.println((char)num+" : "+dir[num]);
        }
    }
}

也不能说是用map来实现是最简单的吧。因为我们需要统计的信息最终的显示形态是键值对的,所以用map来存储比较方便。所以比较常用map。

直接对字符串进行遍历,,然后查找就行了

map是简单的办法, 但是字典树是最高效的办法。

看错了,统计单词用字典树。统计字符,直接开一个int[256]的数组,根据每个字符的ascii直接将对应下标的+1,结果就是统计出来的。