Java 字符串的split分割方法小细节

createh53个月前 (01-13)技术教程34

实践

先来个图,简单展示一下split的两个重载方法;


1、先拿一个入参的做个实验:

逻辑:定义一个字符串,以 '分割'作为分割符,最后将结果转为集合输出:

得两元素,正确;第二次再以 '割'作为分割符,

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

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

2、那我们使用第二个重载方法,两个参数的,第二个参数 :limit是数值型,前边默认取了0,那我们就取个正数看一下 1、2、5:

只返回一个元素,更不对了;

只返回两个,也不对;

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

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

limit既然是数值型,那我们试一下负数:-1、-2、、-5

核对源码解释:

总结

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

相关文章

全网最全:Java字符串处理

Java字符串处理,包含了多个静态方法,用于执行不同类型的字符串操作。开箱即用空白和空字符串检查:isBlankIfStr(Object obj):检查对象是否为空白字符串,包括null、空字符串、只...

一篇文章搞定Java字符串?的基本操作知识

一、字符串的转换1、在开发过程中,有时需要对字符串的转换操作,例如字符串的字母大小写转换把”abc”转换成”ABC”,基本数据类型转换成字符串、字符数组转换成字符串,字符串转成数组的形式等。2、字符串...

面试题:为什么JDK9要将String的底层实现由char[]改为byte[]?

在 JDK 9 中,并没有直接将String的底层实现由char[]改为byte[],而是引入了 Compact Strings 的优化。节省内存空间字符编码考虑在 Java 中,char类型占用 2...

Java 中如何将字符串String 和数组Array互相转换

在Java中,可以使用String类的split()方法将字符串转换成字符串数组。split()方法接受一个正则表达式或字符作为参数,将字符串按照指定的分隔符进行拆分,返回一个String类型的数组。...

Java 从底层与接口实现了解String、StringBuffer、StringBuilder

String、StringBuffer 和 StringBuilder的接口实现关系:String:字符串常量,字符串长度不可变。Java中String 是immutable(不可变)的。用于存放字符...

Java基础之字符串及——String

字符串什么是字符串?如果直接按照字面意思来理解就是多个字符连接起来组合成的字符序列。为了更好的理解以上的理论,我们先来解释下字符序列,字符序列:把多个字符按照一定的顺序排列起来;而字符序列就是作为字符...