将字符串中的所有数字重复三次
Triplicate all digits in a string
我有一个包含像 "abc123"
这样的数字的字符串,我希望每个数字都出现 3 次,如下所示:"abc111222333"
.
有没有办法用 replaceAll("\d+.*", ???)
做到这一点,而 ?
是找到的任何数字?
分别还有比这"better"的吗?:
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
您可以使用"abc123".replaceAll("(\d)", "")
解释:
\d
匹配单个数字
()
抓一组
指向正则表达式 每次匹配捕获的第一组
我有一个包含像 "abc123"
这样的数字的字符串,我希望每个数字都出现 3 次,如下所示:"abc111222333"
.
有没有办法用 replaceAll("\d+.*", ???)
做到这一点,而 ?
是找到的任何数字?
分别还有比这"better"的吗?:
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
您可以使用"abc123".replaceAll("(\d)", "")
解释:
\d
匹配单个数字()
抓一组指向正则表达式
每次匹配捕获的第一组