【问题标题】:Replace all ocurrences by string with special characters in java [duplicate]用java中的特殊字符替换所有出现的字符串[重复]
【发布时间】:2014-12-23 07:15:15
【问题描述】:

我有下一个字符串:

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

有没有办法解决这个问题?

【问题讨论】:

    标签: java string replace pattern-matching match


    【解决方案1】:

    使用String#replace() 而不是String#replaceAll()

    或带有数字参数的String#format()

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

    【讨论】:

      【解决方案2】:

      使用 String.replace(CharSequence,CharSequence)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-14
        • 2015-11-27
        • 2013-11-05
        • 1970-01-01
        相关资源
        最近更新 更多