统计一段字符串中每个字符出现的次数,用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,结果就是统计出来的。