转义特殊字符时,replaceAll无法正常工作

时间:2018-03-21 20:34:10

标签: java

class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        String searchKeyword="Legal'%_";
        String specialChars[]={"_","%","'"};
        for(int i=0;i<specialChars.length;i++)
           searchKeyword=searchKeyword.replaceAll(specialChars[i],"\\"+specialChars[i]);
        System.out.println(searchKeyword);

    }
}

这个片段试图逃避一些特殊字符,但问题是searchKeyword没有获得新的替换字符串。

它的输出应该是Legal \'\ _%_,但我只将原始字符串作为输出。

请帮助我。

1 个答案:

答案 0 :(得分:0)

replaceAll(String regex, String replacement)适用于正则表达式:

  

替换此字符串中与给定常规匹配的每个子字符串   表达式与给定的替代。

您需要用特定字符串替换输入String中的子字符串:replace(CharSequence target, CharSequence replacement)

  

替换此字符串中与文字目标匹配的每个子字符串   具有指定文字替换序列的序列。