java神坑系列——split

Posted agnils

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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(".", "") 有人说这个也是坑,我想说这个也不是,这句话是把所有的字符都替换为空……。

以上是关于java神坑系列——split的主要内容,如果未能解决你的问题,请参考以下文章

Ceph神坑系列

java Ftp上传创建多层文件的代码片段

神坑,junit 惊现重大 bug!!!

我爱java系列---String.Split方法

SpringCloud Ribbon 负载均衡 通过服务器名无法连接的神坑一个

Python中的神坑return和finally