关于java中replaceAll替换\的问题
关于java中replaceAll替换“\”的问题:
由于在java中replaceAll中使用正则表达式的方式来进行替换操作,正则表达式中"\"为转义字符,所以在replaceAll时要"\"必须用"\\"表示。
另外由于"\"在java中也属于转义字符,在字符串中的"\"也是以"\\"形式来保存的。
例如:把d:\tmp.txt赋到一个字符串变量时应该写成:
String str="d:\\tmp.txt";
然而以:
System.out.println(str);
输出结果为:d:\tmp.txt
实际上内存当中保存的字符串值为:"d:\\tmp.txt"
所以当我们想把字符串"d:\tmp.txt"替换成"d:@tmp.txt"的时候必须这样写:
String str="d:\\tmp.txt";
str=str.replaceAll("\\\\","@");\\因为实际上要替换的是两个"\".
System.out.println(str);
输出结果为:d:@tmp.txt
而不是写成:str=str.replaceAll("\\","@");这样写会抛出一个异常
?
引用:http://sbje5201314.blog.163.com/blog/static/28033862008321534783/