首页 新闻 会员 周边

为什么使用replaceAll(".", ";")得到的结果是[;;;;;;],求大神帮忙解释一下,谢啦!

0
[已解决问题] 解决于 2014-05-16 17:29

        String s="aaa.bbb.ccc";
        System.out.println(s.indexOf("."));
        System.out.println(s.split(".").length);
        
        String s1=s.replaceAll(".", ";");
        System.out.println(s1);

 

输出结果出人意料啊。

螺帽的主页 螺帽 | 菜鸟二级 | 园豆:202
提问于:2014-05-16 11:08
< >
分享
最佳答案
0

replaceAll是基于正则表达式的,在java api中有:

  String replaceAll(String regex, String replacement)
          使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。

因此,符号 . 在正则表达式中的意思是匹配字符串中的任意字符,那么在执行

 String s1=s.replaceAll(".", ";");

的时候,会将所有的字符都更改为“;"。

---------------------------------------------------------

想要将字符串中的“."更改为”;", 可以通过以下两种方式实现:

1.  String s1=s.replaceAll("\\.", ";");

2.  String s1=s.replaceAll("[.]", ";");

---------------------------------------------------------

更多正则表达式相关的内容请参见:

http://www.cnblogs.com/grass-and-moon/p/3724195.html

奖励园豆:5
grassofsky | 菜鸟二级 |园豆:342 | 2014-05-16 14:35

谢谢啦

螺帽 | 园豆:202 (菜鸟二级) | 2014-05-16 17:31

@螺帽:不客气

grassofsky | 园豆:342 (菜鸟二级) | 2014-05-16 17:41
其他回答(1)
0

replaceAll是基于正则式替换的,. 是匹配除换行符以外的任意字符

刘宏玺 | 园豆:14020 (专家六级) | 2014-05-16 11:16

谢谢啦

支持(0) 反对(0) 螺帽 | 园豆:202 (菜鸟二级) | 2014-05-16 17:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册