我有一个包含"abc123"
等数字的字符串,我希望每个数字都显示3次,如下所示:"abc111222333"
。
有没有办法用replaceAll("\\d+.*", ???)
执行此操作,而?
是找到的数字?
分别是什么"更好"比这个?:
String input = "abc1x23z";
String output = input;
for (int i = 0, j = i; i < input.length(); i++) {
char c = input.charAt(i);
if ( Character.isDigit( c ) ) {
String a = output.substring(0, j+1);
String b = output.substring(j, output.length());
output = a + c + b;
j += 3;
}else{
j++;
}
}
System.out.println(output); // abc111x222333z
答案 0 :(得分:3)
您可以使用"abc123".replaceAll("(\\d)", "$1$1$1")
说明:
\\d
匹配单个数字()
捕获群组$1
指向正则表达式每次匹配所捕获的第一个组