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
。 此方法使用两个参数
- 我们想要找到的子串的
regex
-
replacement
应该用于替换匹配的子串的内容。
在replacement
部分中,您可以使用正则表达式通过$x
匹配的组 ,其中x
是组索引。 例如
"ab cdef".replaceAll("[az]([az])","-$1")
将生成新的字符串,每两个小写字母替换-
和第二个当前匹配的字母(注意第二个字母放在括号中,这意味着它在组1中,所以我可以在$1
替换部分中使用它)所以结果将是-b -df
。
现在尝试使用它来解决您的问题。
您可以将String.replaceAll
与正则表达式一起使用:
"i ee44 a1 1222".replaceAll("(\\d+)", "($1)");