日期:2014-05-19 浏览次数:20846 次
Map<String,Integer> map=new HashMap<String,Integer>();
String str="01,01,02,03,03,10";
String[] ss=str.split(",");
for(String s:ss){
Integer count=map.get(s);
if(count==null){
map.put(s, 1);
}else{
map.put(s, count+1);
}
}
String result="";
for(Entry<String,Integer> e:map.entrySet()){
if(!"".equals(result)){
result+=",";
}
result+=(e.getKey()+(e.getValue()<10?("0"+e.getValue()):e.getValue()));
}
System.out.println(result);
------解决方案--------------------
package a;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class Test5 {
/**
* @param args
* @author sunstar
* @date 2012-7-18 下午5:29:53
*/
public static void main(String[] args) {
String str ="01,01,02,03,03,10";
Map<String, Integer> map = new HashMap<String, Integer>() ;
String arrs[] = str.split(",") ;
String tmp = "" ;
int num = 0 ;
for (int i = 0; i < arrs.length; i++){
tmp = arrs[i] ;
if (map.get(tmp) != null){
num = map.get(tmp)+ 1 ;
}else
num = 1 ;
map.remove(tmp) ;
map.put(tmp, num) ;
}
Iterator it = map.keySet().iterator() ;
StringBuffer sb = new StringBuffer() ;
while(it.hasNext()){
tmp = (String) it.next() ;
sb.append(intToFormatStr(map.get(tmp), 2) +tmp ) ;
sb.append(",") ;
System.out.println(tmp + " --" + map.get(tmp)+"次") ;
}
System.out.println(sb.toString().substring(0,sb.toString().length()-1)) ;
}
public static String intToFormatStr(int value, int len){
String str = value +"";
while(str.length() < len){
str = "0" + str ;
}
return str ;
}
}