splitByWholeSeparatorPreserveAllTokens和split之间的区别

时间:2011-12-28 10:23:54

标签: java apache-commons

StringUtils.splitByWholeSeparatorPreserveAllTokens()String.split()之间的区别是什么?

使用splitByWholeSeparatorPreserveAllTokens,我们可以限制数组中返回的参数数量。这是唯一的区别吗?

2 个答案:

答案 0 :(得分:4)

<强> java.lang.String.split();
用法:的 此方法返回的数组包含此字符串的每个子字符串,该子字符串由与给定表达式匹配的另一个子字符串终止,或者由字符串的结尾终止。数组中的子串按它们在此字符串中出现的顺序排列。如果表达式与输入的任何部分都不匹配,那么结果数组只有一个元素,即该字符串。

<强> org.apache.commons.lang.StringUtils.splitPreserveAllTokens();
用法:的 将提供的文本拆分为数组,指定分隔符,保留所有标记,包括由相邻分隔符创建的空标记。这是使用StringTokenizer的替代方法。

了解详情:kickjava_src_apache_StringUtils

String.split()使用最终的课程Pattern进行拆分。

Pattern.compile(regex).split(this , limit);
StringUtils中的

使用splitWorker(String str, char separatorChar, boolean preserveAllTokens),它是自己的方法,它是2.0的性能调整(JDK1.4)。

答案 1 :(得分:2)

I found folowing difference between String.split and splitByWholeSeparatorPreserveAllTokens 
  • splitByWholeSeparatorPreserveAllTokens处理Null值 String.split()不
  • 在splitByWholeSeparatorPreserveAllTokensAdjacent分隔符中 被视为空标记的分隔符。