我有下一个字符串:
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
。
有什么方法可以解决这个问题吗?
答案 0 :(得分:1)
使用String#replace()代替String#replaceAll()
带有数字参数的String var = String.format("Hello %1$s, welcome to %1$s, your name is %1$s", username);
答案 1 :(得分:0)
使用String.replace(CharSequence,CharSequence)。