在java中,对于反斜杠 " \ " 有特定的含义。要想使用replaceAll把反斜杠替换成空字符串,需要使用四个反斜杠 " \\\\ "。
原因是反斜杠是转义字符,在regex中"\\"表示一个"\",在java中一个"\"也要用"\\"表示。因此,前一个"\\"代表regex中的"\",后一个"\\"代表java中的"\"。说明原因后且看下面的示例:
1.把反斜杠替换成空字符串
String s="C:\盘";
对于上述字符串的定义,看似没有问题,但编译器会报错。需要再加一个反斜杠,如下:
String s="C:\\盘";
那么如何把上述的字符串的反斜杠去掉呢?使用replaceAll方法即可:
s.replaceAll("\\\\","");
2.把指定的字符串替换为反斜杠
同理当需要把指定的字符串替换为反斜杠时,也需要使用四个反斜杠。
String str="hhhhh'123jjjd' hello ' word jjj'";
在上面的字符串中所有单引号后面都添加一个反斜杠:
str.replaceAll("'","'\\\\");
总而言之,使用四个反斜杠作为反斜杠即可!