Java,如何替换字符串中的数字序列

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

"i ee44 a1 1222" 

应该作为输出:

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

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

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

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

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

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

  1. 我们想要找到的子串的regex
  2. replacement应该用于替换匹配的子串的内容。

replacement部分中,您可以使用正则表达式通过$x匹配的组 ,其中x是组索引。 例如

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

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

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

您可以将String.replaceAll与正则表达式一起使用:

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