split方法是一个最常用的拆分字符串的方法。如果没有深入了解的话,就会采坑。
笔者前几天在项目中就遇到了这个坑,一直以为带一个分隔符的字符串,无论左右两侧是否有字符,都会解析为一个包含2个元素的数组。因此坑了自己一把!
- 笔者实力坑:查询时将两个字段使用逗号分隔拼接在了一起,然后在后台进行处理。当时考虑到了以下的情况,但之前一直以为拆分结果是2个数组元素
- String name = ",";
- String[] arr = name.split(",");
- 这样解析后,笔者就直接通过arr[o],arr[1]方式直接取了。
下面我们来看看split吧!
- package spilt方法;
-
- public class Test {
-
- public static void main(String[] args) {
-
- String name = "测试1,测试11";
- String[] arr = name.split(",");
- System.out.println("测试1.length="+arr.length);
-
-
- String name2 = "测试2,";
- String[] arr2 = name2.split(",");
- System.out.println("测试2.length="+arr2.length);
-
-
- String name3 = ",测试11";
- String[] arr3 = name3.split(",");
- System.out.println("测试3.length="+arr3.length);
-
-
- String name4 = ",";
- String[] arr4 = name4.split(",");
- System.out.println("测试4.length="+arr4.length);
-
-
-
-
-
-
-
-
-
- String name5 = ", ";
- String[] arr5 = name5.split(",");
- System.out.println("测试5.length="+arr5.length);
- }
- }
结论:split方法分隔符两侧均有字符时,则会解析得到2个数组元素;
* 若只有左侧有字符,则只会解析得到1个数组元素(左侧的字符);
* 若只有右侧有字符,则会解析得到2个数组元素(左侧和右侧);
* 若两侧均无字符时,则解析得到0 个数组元素