Java 字符串的split分割方法小坑点

实践

先来个图,简单展示一下split的两个重载方法;
Java 字符串的split分割方法小坑点_第1张图片
1、先拿一个入参的做个实验:

逻辑:定义一个字符串,以 '分割’作为分割符,最后将结果转为集合输出:
Java 字符串的split分割方法小坑点_第2张图片

得两元素,正确;第二次再以 '割’作为分割符,
Java 字符串的split分割方法小坑点_第3张图片

得两元素,错误,最后应该还有一个空串,为了追查原因,我们查看一下源码:

Java 字符串的split分割方法小坑点_第4张图片

如红线所标,大概意思是所末尾空串元素则不会包含在返回的数组里。

2、那我们使用第二个重载方法,两个参数的,第二个参数 :limit是数值型,前边默认取了0,那我们就取个正数看一下 1、2、5:
Java 字符串的split分割方法小坑点_第5张图片

只返回一个元素,更不对了;
Java 字符串的split分割方法小坑点_第6张图片
只返回两个,也不对;

Java 字符串的split分割方法小坑点_第7张图片

5 的时候返回3个元素,这回对了;但是再制造超过5个元素的字符串,如下:

Java 字符串的split分割方法小坑点_第8张图片

后面两个没有分割到,这又不对了;

limit既然是数值型,那我们试一下负数:-1、-2、-5
Java 字符串的split分割方法小坑点_第9张图片
Java 字符串的split分割方法小坑点_第10张图片
Java 字符串的split分割方法小坑点_第11张图片
核对源码解释:
Java 字符串的split分割方法小坑点_第12张图片

总结

所以,字符串使用split分割,尽量使用 split(String regex, -1),如果实际业务可忽略空串,则可正常使用 split(String regex)。

你可能感兴趣的:(java开发,字符串,java,开发语言)