java神坑系列——split

作为java程序员天天都用它,它都是我们的饭碗,但是它的坑实在太多……所以现在想写java神坑系列,今天写第一个坑 string的split方法。

 

split是大家常用的一个方法。但是它有好多坑……

大家都知道它的参数是正则表达式,正则的特殊符号要转义,如果不转义话,嘿嘿ing…………

 大家做个题:如下

        System.out.println("a".split(".").length);
        System.out.println("a".split("|").length);
        System.out.println("a".split("{").length);
        System.out.println("a".split("}").length);

如果你给的答案是

0
2
报错
1

那么说明你用的是jdk1.7。

如果你给的答案是

0
1
报错
1

那么说明你用的是jdk1.8。

就问坑不坑………………………… java之神坑…………

如果两个都不是那你要打打基础了……………………

同样的代出不同的结果………………查到了1.7的源码这个和Pattern split的limit 有关 public String[] split(CharSequence input, int limit) 

1.8的源码我没去看,大家可以自己去看看。运行结果如图

 

========================================第一个神坑就写到这里==============================

附上正则特殊字符的split      jdk1.7

 

 

ps 

"a".split(".").length有人说这个是神坑,我相说这个不是,在正则中.代表所有。这句话是以全部的字符作分隔符当然是0.
这个让我想起"sss".replaceAll(".", "") 有人说这个也是坑,我想说这个也不是,这句话是把所有的字符都替换为空……。
posted @ 2017-07-05 11:44  agnils  阅读(1009)  评论(1编辑  收藏  举报