A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 灰太狼爱平底锅1 中级黑马   /  2014-2-7 20:04  /  1058 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

当直接使用类名调用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
复制代码



评分

参与人数 1技术分 +1 收起 理由
FFF + 1 神马都是浮云

查看全部评分

2 个回复

倒序浏览
“.”代表匹配所以字符
回复 使用道具 举报
replaceAll方法的参数是使用正则表达式的,其中有特殊字符,“."就是一个特殊字符,特殊字符是需要转义的。\\.就是对.进行转义。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马