/** * @param str 解码前字符串 * @return 解码后字符串 * @author mnmlist */ public static String decode(String str) { if(str==null||str.length()==0) return str; StringBuilder sBuilder=new StringBuilder(); int strLen=str.length(); int i=0; int start=0,end=0; char ch; String tempSubString=null,tempNumString=null; while(i<strLen) { //找出子串 start=i; ch=str.charAt(i); while(i<strLen&&(ch>'9'||ch<'0')) { i++; if(i<strLen) ch=str.charAt(i); } end=i; tempSubString=str.substring(start,end); //找出每个子串出现的次数 start=end; ch=str.charAt(i); while(i<strLen&&(ch<='9'&&ch>='0')) { i++; if(i<strLen) ch=str.charAt(i); } end=i; tempNumString=str.substring(start,end); int count=Integer.valueOf(tempNumString); //将子串重复解码 for(int j=0;j<count;j++) sBuilder.append(tempSubString); } return sBuilder.toString(); }
点赞 评论

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务