1 String value="''''";
2 value = value.replaceAll("'", "\\'");
3 System.out.println(value);
4 System.out.println("\\'\\'\\'\\'");语句3的输出为 ''''
语句4的输出为 \'\'\'\'value replaceAll() 后的结果的结果不是 "\\'\\'\\'\\'"? 那应该是什么?
为什么会这样?
2 value = value.replaceAll("'", "\\'");
3 System.out.println(value);
4 System.out.println("\\'\\'\\'\\'");语句3的输出为 ''''
语句4的输出为 \'\'\'\'value replaceAll() 后的结果的结果不是 "\\'\\'\\'\\'"? 那应该是什么?
为什么会这样?
value = value.replaceAll("'", "\\'");
后的结果是
value ="\'\'\'\'";
然后
System.out.println(value);
结果自然是''''
也就是说这两个步骤中转义字符都发生了作用,
System.out.println("\\'\\'\\'\\'");
只发生一次转义,所以结果为 \'\'\'\'
第一个value你操作了两次当然转义了2次,而后一个操作了一次当然就转义一次了
所以才像你所说的那个结果。
建议楼主看看jdk 有关这方面的东西在Package java.util.regex.pattern和java.util.regex.Matcher.replaceAll下