6

我试图用括号内的数字本身替换字符串中的任何数字序列。所以输入:

"i ee44 a1 1222"  

应该有一个输出:

"i ee(44) a(1) (1222)"

我正在尝试使用 String.replace(a,b) 来实现它,但没有成功。

4

3 回答 3

7
"i ee44 a1 1222".replaceAll("\\d+", "($0)");

试试这个,看看它是否有效。

由于您需要使用正则表达式,您可以考虑使用replaceAll而不是replace.

于 2013-10-24T21:35:31.400 回答
3

你应该使用replaceAll. 此方法使用两个参数

  1. regex对于我们要查找的子字符串
  2. replacement应该用什么来替换匹配的子字符串。

replacement某种程度上,您可以通过where is group index使用由正则表达式匹配的组。例如$xx

"ab cdef".replaceAll("[a-z]([a-z])","-$1") 

将产生新的字符串,每两个小写字母替换为-第二个当前匹配的字母(注意第二个字母放在括号中,所以这意味着它在第 1 组中,所以我可以在替换部分中使用它$1)所以结果将是-b -d-f.

现在尝试使用它来解决您的问题。

于 2013-10-24T21:37:29.470 回答
1

您可以使用String.replaceAll正则表达式:

"i ee44 a1 1222".replaceAll("(\\d+)", "($1)");
于 2013-10-24T21:37:50.647 回答