【java】关于replace字符串时特殊字符的坑

刚遇到个字符串替换的坑,记录一下

实际使用时是这样的,有一个字符串里面包含\n \“等字符

现在我要把他们替换为空格和”

第一时间我想到的是

str.replaceAll("\\n","");
str.replaceAll("\\\"",""");

实际上完全替换不了,还有错误

实际\n和\“在java中是这样存储的

\\n 和 \\"

正确的替换方式:

replaceAll("\\\\n","")
replaceAll("\\\\\"","\"")

居然需要4个反斜线…