//需求:将一串字符串比如 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)
Map.Entry的用法实战
最新推荐文章于 2023-12-16 08:15:00 发布