将所有出现的字符串替换为java中的特殊字符

时间:2014-10-28 00:09:45

标签: java string replace pattern-matching match

我有下一个字符串:

String var = "Hello NAME_USER, welcome to NAME_USER, your name is NAME_USER";

我想替换所有出现的NAME_USER,问题是当NAME_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_USER可以替换为任何String

有什么方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

使用String#replace()代替String#replaceAll()

带有数字参数的

String#format()

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

答案 1 :(得分:0)

使用String.replace(CharSequence,CharSequence)。