Java悬赏问题,Java语言如何展开字符串
String s = "3a11b7cdef2b5e";
转换成
aaabbbbbbbbbbbcccccccdefbbeeeee
Java悬赏问题,Java语言如何展开字符串
String s = "3a11b7cdef2b5e";
转换成
aaabbbbbbbbbbbcccccccdefbbeeeee
这个问题很有趣,忍不住尝试了一把
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) throws Exception{
String s = "3a11b7cdef2b5e";
String regex = "\\d*[a-zA-Z]";
Pattern pattern = Pattern.compile (regex);
Matcher matcher = pattern.matcher (s);
String[] array = new String[0];
while (matcher.find ()){
String[] cloned = new String[array.length + 1];
System.arraycopy (array, 0, cloned, 0, cloned.length - 1);
cloned[cloned.length - 1] = matcher.group ();
array = cloned;
}
StringBuffer sbBuffer=new StringBuffer();
for ( String str2 : array ){
//System.out.println (str2);
String[] strArr=str2.split("[a-zA-Z]");
if(strArr.length==1) {
str2=str2.replace(strArr[0], "");
int i=Integer.parseInt(strArr[0]);
for (int j=0;j<i;j++) {
sbBuffer.append(str2);
}
}else {
sbBuffer.append(str2);
}
}
System.out.println(sbBuffer.toString());//aaabbbbbbbbbbbcccccccdefbbeeeee
}
}