日期:2014-05-19 浏览次数:20676 次
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 ; } }