黑马程序员技术交流社区

标题: 字符替换的问题 [打印本页]

作者: 灰太狼爱平底锅1    时间: 2014-2-7 20:04
标题: 字符替换的问题
当直接使用类名调用replaceAll()方法替换字符"."时可以正常显示想要的内容,但当对包含"."的字符串s采取同样操作是却是整个字符串被"/"替换,但当改为"\\."后得到了想要的结果,求解释。
  1. public class Me {
  2. public static void main(String[] args) {
  3. String s = "com.pack.Me";
  4. System.out.println(Me.class.getName());
  5. System.out.println(Me.class.getName().replaceAll("Me", "/") + ".class");
  6. System.out.println(Me.class.getName().replaceAll(".", "/") + ".class");
  7. System.out.println(s.replaceAll(".", "/")+".class");
  8. System.out.println(s.replaceAll("\\.", "/")+".class");
  9. 输出结果为:
  10. Me
  11. /.class
  12. Me.class
  13. /////////////.class
  14. com/public/Me.class
复制代码




作者: 2424308    时间: 2014-2-9 15:59
“.”代表匹配所以字符
作者: zc332750    时间: 2014-2-9 23:01
replaceAll方法的参数是使用正则表达式的,其中有特殊字符,“."就是一个特殊字符,特殊字符是需要转义的。\\.就是对.进行转义。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2