我有一个包含某些变量的字符串,例如"This is string containing $variable$"
。我想用新字符串替换此$variable$
。如果我使用像str.replaceall("$variable$","new_value")
这样的替换方法,它就不会被替换。但是,如果我没有$
符号,它就会被替换。但我的输出是这样的,$new_value$
。
我需要它而没有$
符号。
答案 0 :(得分:2)
String.replaceAll()接受regular expression作为参数,$具有特殊含义。只需用\:
来逃避美元符号myString.replaceAll("\\$variable\\$", replacement);
答案 1 :(得分:2)
尝试使用String.replace(CharSequence, CharSequence):
str.replace("$variable$","new_value");
因为 String.replaceAll()需要将正则表达式作为第一个参数,而正则表达式上的 $ 字符代表“字符串末尾的匹配”