(74)TreeMap练习:求字符串中每个字符出现的次数(键值对:字符---次数)

什么时候使用map集合呢?
当数据之间存在映射关系时,就要先想到map集合

需求:获取字符串中的字母出现的次数
希望打印结果为:a(1) c(2)…..
通过结果发现,每一个字母都有对应的次数,说明字母和次数之间存在映射关系。
思路:
1、将字符串转换为字符数组,因为要对每个字母进行操作。
2、定义一个map集合,因为打印结果字符有顺序,所以使用treemap集合。
3、遍历字符数组
3.1 将每一个字母作为键去查map集合
3.2如果返回为null,说明集合中没有这个元素,应该将字母和1存入到map集合中。
3.3如果返回的不是null,说明该字母在map集合中已经存在,并且有对应的次数,那 么就应该获得这个次数,并进行自增,然后将该字母和 自增后的次数存入到map集合中,覆盖调原来键对应的值。
4、将map集合中的数据变成指定的字符串形式返回

public class StringLength {

    public static TreeMap everCharLen(String str) {
        TreeMap<Character,Integer> map=new TreeMap<Character,Integer>();
        for(int i=0;i<str.length();i++) {
            char temp=str.charAt(i);
            if(!map.containsKey(temp)) {
                map.put(temp, new Integer(1));
            }
            else {
                int count=map.get(new Character(temp));
                count++;
                map.put(new Character(temp), count);
            }
        }
        return map;
    }
    public static void main(String[] args) {
        String str="abcdbcddca";
        TreeMap<Character,Integer> map=new TreeMap<Character,Integer>();
        map=everCharLen(str);

        Set<Character> s=map.keySet();
        Iterator<Character> it=s.iterator();
        while(it.hasNext()) {
            char ch=it.next();
            Character ch1=new Character(ch);
            System.out.println(ch+"("+map.get(ch1)+")");
        }




    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值