- import java.util.*;
- class MyCiShu
- {
- public static void main(String[] args)
- {
- CiShu cishu=new CiShu("abcdefgabcdefgqweweere");
- cishu.ciShu();
- }
- }
- class CiShu
- {
- private String str;
- CiShu(String str)
- {
- this.str=str;
- }
- public void ciShu()
- {
- char[] ch=str.toCharArray();//将字符串转化我字符数组
- HashMap hm=new HashMap();
- for(int i=0;i<ch.length;i++)
- {
- hm.put(ch[i],0);//将字符的键值存在hashmap集合中,值默认为0;
- }
- int[] num=new int[hm.size()];//定义一个数组,用于存储和键相对应的值的个数,也就是存储每个字符出现的次数。
- Set set=hm.keySet();
- Iterator it=set.iterator();
- for(int i=0;i<hm.size();i++)
- {
- Object obj=it.next();//获取hashmap中的键。
- for(int t=0;t<ch.length;t++)//遍历所有字符
- {
- if(obj==ch[t])//如果字符和键相等,则相对应的值++;用这种方法记录每个字符出现的次数
- num[i]++;
- }
- //覆盖旧hashmap,生成新的hashmap。
- hm.put(obj,num[i]);//再次将处理好的键值对放入hashmap中,其实相当于用值替换0,或者说是用每个字符出现的次数作为和键对应的值,存在hashmap中。
- }
- System.out.println(hm);
- }
- }
复制代码 这次自己写的,和你的功能相似,其实还是用集合的思想解决这类问题方便一些。
|