用java中的特殊字符替换字符串中的所有引用

用java中的特殊字符替换字符串中的所有引用,java,string,replace,pattern-matching,match,Java,String,Replace,Pattern Matching,Match,我有下一个字符串: String var = "Hello NAME_USER, welcome to NAME_USER, your name is NAME_USER"; 我想替换所有出现的NAME\u USER,问题是当NAME\u USER具有特殊字符时(例如:!“$%&/()=)(/&%),会引发java.lang.IllegalArgumentException 完整代码: String var = "Hello NAME_USER, welcome to NAME_USER, y

我有下一个字符串:

String var = "Hello NAME_USER, welcome to NAME_USER, your name is NAME_USER";
我想替换所有出现的
NAME\u USER
,问题是当
NAME\u USER
具有特殊字符时(例如:
!“$%&/()=)(/&%
),会引发
java.lang.IllegalArgumentException

完整代码:

String var = "Hello NAME_USER, welcome to NAME_USER, your name is NAME_USER";
var = var.replaceAll("NAME_USER","!#$%&/()=)(/&%");
例外情况:

java.lang.IllegalArgumentException: Illegal group reference
    at java.util.regex.Matcher.appendReplacement(Matcher.java:857)
    at java.util.regex.Matcher.replaceAll(Matcher.java:955)
    at java.lang.String.replaceAll(String.java:2210)
    at com.vupc.colegios.infraestructura.utilitarios.UtilitarioPlantilla.reemplazarTexto(UtilitarioPlantilla.java:119)
注意:
NAME\u USER
可以用任何
字符串替换

有什么办法解决这个问题吗?

使用String.replace(CharSequence,CharSequence)。

使用而不是

或使用数字参数:

String var = String.format("Hello %1$s, welcome to %1$s, your name is %1$s", username);