先说一个案例:

对一个字符串“tom12jie1bill2lili21som12joy12212121hehe”进行分割,规则:以1或2为分隔符进行分割,如果有12,或21则把12或21看成一个分隔符进行分割,期望输出:(为了方便查看,加了行号)

1.tom
2.jie
3.bill
4.lili
5.som
6.joy
7.
8.
9.
10.hehe

最先看到首先想到的是正则表达式,虽然之前还专门做了正则的整理,结果还是试了半天(lll¬ω¬)。代码如下:

    public static void main(String[] args) {
        String reg="tom12jie1bill2lili21som12joy12212121hehe";
        String[] arr=reg.split("12|21|1|2") ;
        int i=0;
        for(String s:arr){
            System.out.println(++i+"."+s);
        }
    }

需要注意的是,正则表达式"12|21|1|2",虽然大家是或的关系,但是还是有先后顺序的,不能乱放。必须把12和21放到前面

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

      好了,接下来回到正题——文本换行分割。

  java里文本的换行符常用的是"\n",但是也有很多人可能是考虑到linux和windows不同的原因,也会写"\r\n","\n\r","\r"。以前一般是去拿个样本试一下,今天终于忍不了了(+_+)。

  综合上面的案例,很容易得到一个正则表达式:"(\\n\\r)|(\\r\\n)|\\r|\\n",通过这个正则就可以解决换行问题了