stringutils.split和string.split的区别

 我来答
素颜染苍穹_
2016-07-06 · 超过30用户采纳过TA的回答
知道答主
回答量:82
采纳率:0%
帮助的人:47.2万
展开全部
首先我们看StringUtils的split()方法的底层:
public static String[] split(String toSplit, String delimiter) {
if (!hasLength(toSplit) || !hasLength(delimiter)) {
return null;
}
int offset = toSplit.indexOf(delimiter);
if (offset < 0) {
return null;
}
String beforeDelimiter = toSplit.substring(0, offset);
String afterDelimiter = toSplit.substring(offset + delimiter.length());
return new String[] {beforeDelimiter, afterDelimiter};
}
语义上看不难理解,第一个参数是需要分割的字符串,第二个参数即分隔符。
逻辑上走下来,可以发现,这个方法是使用subString()方法,从字符串起始位置到分隔符在字符串中第一次出现的位置截下来,然后在把剩下的的字符串截下来,放进数组返回。
可以看出StringUtils的split()方法是使用subString去截断字符串,并且只截一次
而String的split从使用效果来说就知道,分隔符有多少,就截多少,当然我并没有去看源代码,仅从使用效果来说是这样。
语言功底不好,描述略多,见谅!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenaaa876
2016-07-06
知道答主
回答量:46
采纳率:0%
帮助的人:9.5万
展开全部
StringUtils.split其实底层调用的也是String.split只是封装了下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
windkni
2017-10-21 · TA获得超过387个赞
知道小有建树答主
回答量:251
采纳率:100%
帮助的人:236万
展开全部
举例:
String[] strs = "".split(",");
String[] strs = ",".split(",");
‍String[] strs = ",1,".split(",");
三个结果分别是:
strs.length=1,strs[0]=""
strs.length=0
strs.length=2,strs[0]="",strs[1]="1"
这三个的结果在你意料之中吗?String.split使用起来潜规则比较多,即使自己清楚,别人也未必一眼就看明白。为了不引起误会,建议使用StringUtils.split来替代,它对空字符串""会进行过滤。
String[] strs = StringUtils.split(",1,,2,", ",");
结果是strs.length=2,strs[0]="1",strs[1]="2"对比上面的第三个的结果应该有结论了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式