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() 后的结果的结果不是 "\\'\\'\\'\\'"? 那应该是什么?
为什么会这样?
解决方案 »
- 没见过的JAVA代码写法
- 怎样改变下面的方法使打印结果不是四舍五入的
- 两道Java题,关于java -ea...和assert
- incompatible types;found:java.lang.Integer , required:int怎么解决?
- 如何在JBuilder中象MsgBox一样弹出一个对话框?
- java的运行
- 菜鸟问题!关于button
- 什么是EJB呀?????
- 运行Java程序时,我想把 dos窗口中的错误信息重定向到一个文本文件,请问有什么办法?
- ....javase新手小菜鸟,碰到类型转换的问题,,,求助!
- 请指点:rmi和socket的应用领域有什么不同的地方. 迷惑:有了rmi是不是可以完全取代socket应用
- 子对象中是否包含了父对象成员?
value = value.replaceAll("'", "\\'");
后的结果是
value ="\'\'\'\'";
然后
System.out.println(value);
结果自然是''''
也就是说这两个步骤中转义字符都发生了作用,
System.out.println("\\'\\'\\'\\'");
只发生一次转义,所以结果为 \'\'\'\'
第一个value你操作了两次当然转义了2次,而后一个操作了一次当然就转义一次了
所以才像你所说的那个结果。
建议楼主看看jdk 有关这方面的东西在Package java.util.regex.pattern和java.util.regex.Matcher.replaceAll下