我想将xx*
替换为x
。
我尝试了string.replaceAll("xx*", "x");
但正则表达式*
很特别所以我需要提供一个\*
但要在java中提供\
,我需要提供\\
==>最后它应该与string.replaceAll("xx\\*", "x");
但是当字符串包含xx*
时,上述语句无法将xx*
替换为x
答案 0 :(得分:7)
您必须将replaceAll()
调用的结果重新分配给字符串变量 - 该方法返回一个新字符串,而不是修改您调用它的字符串。< / p>
请勿使用replaceAll()
!!处理文字字符串时使用replace()
:
string = string.replace("xx*", "x");
答案 1 :(得分:1)
字符串是不可变的。将replaceAll
的结果分配给原始值
string = string.replaceAll("xx\\*", "x");
答案 2 :(得分:1)
string.replaceAll("xx\\*", "x")
不会更改给定的字符串,因为字符串在Java中是不可变的。您需要使用返回的值,例如将其分配回原始变量:string = string.replaceAll("xx\\*", "x")
答案 3 :(得分:0)