Map.Entry的用法实战


//需求:将一串字符串比如 eeadbcd  输出为a(1)b(1)c(1)d(2)e(2)的形式,即字母+出现的次数
import java.util.*;

/**
 * Created by patkritLee on 2017/3/16.
 */
public class MapTest {
    public static void main(String[] args){
        String s = charCount("adawdawdawcdwadawd");
        System.out.println(s);
    }
    public static String charCount(String str){
        char[] chs = str.toCharArray();
        TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>();
        int cnt = 0;
        for(int x = 0;x < chs.length;x++){
            Integer value = tm.get(chs[x]);
            if(value!=null)
                cnt = value;
            cnt++;
            tm.put(chs[x],cnt);
            cnt = 0;
        }
        StringBuilder sb = new StringBuilder();
        Set<Map.Entry<Character,Integer>> entrySet = tm.entrySet();
        Iterator<Map.Entry<Character,Integer>> it = entrySet.iterator();
        while(it.hasNext()) {
            Map.Entry<Character,Integer> me = it.next();
            Character ch = me.getKey();
            Integer value = me.getValue();
            sb.append(ch+"("+value+")");
        }
        return sb.toString();
    }
}
输出:a(6)c(1)d(6)w(5)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值