当前位置: 代码迷 >> J2EE >> 字符串的处置
  详细解决方案

字符串的处置

热度:85   发布时间:2016-04-22 01:00:43.0
字符串的处理
如何把字符串 String str="01,01,02,03,03,10";
处理为:
  String StrTwo ="0102,2001,0302,1001"; (4位中前两位标识字符串,后两位表示重复次数。如0102表示有02个01)

------解决方案--------------------
Java code
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);
------解决方案--------------------
Java code
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 ;    }}
  相关解决方案