我正在尝试创建一个返回原始字符串版本的方法,如下所示:原始字符串中出现的每个数字 0-9 都替换为该数字右侧出现的多次字符。所以字符串“a3tx2z”产生“attttxzzz”,“12x”产生“2xxx”。后面没有字符的数字(即在字符串的末尾)被空替换。
我已经编写了代码,但它只适用于第一个数字,下一个数字保持不变。
public String blowUp( String str ){
StringBuffer buffer = null;
String toAdd = null;
String toReturnString = null;
if( str.length() == 0 ){
return "no string found";
}else{
for( int count = 0; count < str.length(); count++ ){
char c = str.charAt( count );
if( count == str.length() - 1 ){
if( Character.isDigit( c ) ){
return str.substring( 0, count );
}else{
return str;
}
}else if( Character.isDigit( c ) ){
char next = str.charAt( count + 1 );
buffer = new StringBuffer();
int nooftimes = Integer.parseInt(Character.toString( c ));
for( int j = 0; j < nooftimes; j++ ){
buffer.append( next );
}
toAdd = buffer.toString();
toReturnString = str.substring( 0, count ) + toAdd + str.substring( count + 1 );
return toReturnString;
}
}
return toReturnString;
}
// return toReturnString;
}