public static void main(String args[]){
String temp = "";
String str = "2_2";
System.out.println(str.replace("_", "\\\\_")); 输出 2\\_2
System.out.println(str.replaceAll("_", "\\\\_"));输出 2\_2
}
原因是replaceAll的参数是regex,即基于规则表达式的替换,在regex中"\\"表示一个"\",在java中一个"\"也要用"\\"表示。这样,前一个"\\"代表regex中的"\",后一个"\\"代表java中的"\"。