输入字符串:"Never mistake silence//| for ignorance, calmness!@#$%^&~for acceptance, or |.*.kindness for weakness.";
已知字符串中会存在/|~!@#$%^&*();:_+-[]这些字符,要求将上面字符串中存在的字符都替换成空格。
最后期望输出是:"Never mistake silence\ \ for ignorance, calmness for acceptance, or . .kindness for weakness."
我的代码如下:
public class Test {
public static void main(String[] args) throws ParseException {
String str = "\"Never mistake silence\\/\\/| for ignorance, calmness!@#$%^&~for acceptance, or |.*.kindness for weakness.\"";
String pattern = "[]/\\\\|~!@#$%\\\\^&*();:_+-[\\\\]]+";
String newStr=str.replaceAll(pattern,"");
System.out.println(newStr);
}
}
最后输出的是:
"Never mistake silence for ignorance, calmnessfor acceptance, or ..kindness for weakness."
看了半天没看出来为啥silence后面的\ \为啥也会被替换掉呢?我的正则表达式中没有体现反斜杠这个字符啊?