本帖最后由 周兴中 于 2012-6-24 01:27 编辑
public static void main(String[] args) {
String str = "zzzuuuzzkdfjklsdjfksdzzkgasdfgsdgreguyguysdfguygfwzzzegsdfhjgjhcv";
HashMap<Character, Integer> hashMap = new HashMap<Character, Integer>();
char[] ch = str.toCharArray();
for (char c : ch) {
Integer value = hashMap.get(c);//这句话的意思是在map集合中查找char c这个字符键所对应的值,如果为null,就说明c第一次出现,就把times赋值为1,然后把<c,1>键值对存入map集合中,当下次再出现该c时,查找到c所对应的值即为1,此时times加1,然后将<c,times+1>存入集合,以此类推,最后集合中存的就是每个字符出现的次数,输出即可.
int times = 0; //这句话在你这个函数里没必要,因为times在下面的语句中必然会被重新赋值. 可以放在 for语句之前.
if (value == null)
{
times = 1;
}
else {
int num = value; //
times = num + 1;//这两句冗余, 写成这样 times = value +1;即可
}
hashMap.put(c, times);
}
System.out.println(hashMap);
}
|