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 tm = new TreeMap();
        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> entrySet = tm.entrySet();
        Iterator> it = entrySet.iterator();
        while(it.hasNext()) {
            Map.Entry 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)

你可能感兴趣的:(JAVA)