这是一个偶然发现的问题。
因为常用split方法都只是使用了一个参数,Android开发时突然遇到一个以‘,’分割的字符串,其中可能会有空值(如:“a,,”),使用split(“,”)只能获取到长度为1的数组,而我需要根据数组长度判断有几个值,并根据值是否为空设置默认展示。
想了好一会都没想到怎么解决,在我准备使用replace进行一系列替换的时候,突然发现split是有两个参数的方法的:split(String regex, int limit)。
Java中:
1.如果参数limit大于0,表示分割后数组的最大长度为limit,即“a,,”.split(“,”,2).length=1,“a,b,c”.split(“,”,2).length=2;
2.如果limit==0,表示默认数组中不存在空值,即“a,,”.split(“,”).length=1;
3.如果limit < 0,表示数组中包括空值,即“a,,”.split(“,”,-1).length=3;
常用的split(“,”)内部调用的是split(“,”, 0)。
Js中:
1.如果limit >= 0,表示分割后数组的最大长度为limit,即“a,,”.split(“,”,2).length=1,“a,b,c”.split(“,”,2).length=2;
2.如果limit < 0,表示默认数组中包括空值,即“a,,”.split(“,”,-1).length=3;
常用split(“,”)等同于limit<0的情况。
Java、Js中split方法的区别
最新推荐文章于 2024-06-27 19:00:00 发布