从String中替换特殊字符

时间:2013-12-09 08:22:44

标签: java regex string replace special-characters

我正在打印String str =\'abc\'。它的打印类似于\'abc'\,而不是'abc'

我尝试过这个选项:str.replaceAll("\\", "");但它给了我 java.util.regex.PatternSyntaxException:索引1附近的意外内部错误

任何人都可以帮助解决此问题。

3 个答案:

答案 0 :(得分:0)

你为什么要使用正则表达式:

str = str.replace("\\", ""); 

如果必须使用正则表达式,则需要使用:

str = str.replace("\\\\", ""); 

正则表达式需要在Java中进行双重转义,因为String和regex引擎机器人需要转义。

答案 1 :(得分:0)

你的方法:

private static String getNewString(String str) { 
      str.replaceAll("\\\\", ""); 
      System.out.println("The updated String : "+str); 
      return str; 
}

将返回初始字符串,因为string是不可变的。 str.replaceAll将保持str原样,它将生成一个新字符串。

将您的测试用例更改为:

    public static void main(String ...string) { 
        String str = "\\'a\\'"; 
        System.out.println("The original String : "+str); 
        str = getNewString(str); 
    } 

    private static String getNewString(String str) { 
        String rez = str.replaceAll("\\\\", ""); 
        System.out.println("The updated String : "+rez); 
        return rez; 
    } 

答案 2 :(得分:0)

我认为你的意思是:

公共课Abc {

public static void main(String[] args) {


    String str ="\'abc\'";

    System.out.println(str);

}

}

输出:'abc'

这对我来说是正确的。