首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

字符串的处置

2012-07-30 
字符串的处理如何把字符串 String str01,01,02,03,03,10处理为:String StrTwo 0102,2001,0302,1001

字符串的处理
如何把字符串 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 ;    }} 

热点排行