/**
* @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();
}