replaceAll的参数就是regex,是正则表达式,首先会转义,所以报错。
把程序改为下面就可以了public static void main(String[] args) {
String s = "a";
s = s.replaceAll(".", "\\\\");
}
把程序改为下面就可以了public static void main(String[] args) {
String s = "a";
s = s.replaceAll(".", "\\\\");
}
str2 = str2.replaceAll("'", "\\\\'");原因如下:String 的 replaceAll() 方法,实际是采用正则表达式的规则去匹配的,\\\\ ,java解析为\\交给正则表达式, 正则表达式再经过一次转换,把\\转换成为\ 也就是java里面要用正则来表示一个\. 必须写成4个\ 如果要表示\\,那就要写8个\
所以如果写成: str1 = str1.replaceAll("\\", "\\\\");就会报正则表达式的错误。
而java语言中\\表示字符\,因此表示两个\\就要用\\\\