2011-12-28 402 views

回答

5

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

org.apache.commons.lang.StringUtils.splitPreserveAllTokens();
用法: 拆分提供的文本到一个数组,指定的分隔符,保留所有的令牌,包括由相邻分隔件创建的空令牌。这是使用StringTokenizer的替代方法。

了解更多:kickjava_src_apache_StringUtils

String.split()使用final类Pattern分裂。

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

使用splitWorker(String str, char separatorChar, boolean preserveAllTokens),它自己的方法,其是用于2.0(JDK1.4)演奏曲调。

+0

是不是包含空的标记? – 2011-12-28 12:18:52

+0

你可以从这个[问题]找到确切的答案(http://stackoverflow.com/questions/225337/how-do-i-split-a-string-with-any-whitespace-chars-as-delimiters) – 2011-12-28 12:37:19

+0

谢谢阿扎德。我使用逗号作为分隔符,所以我想这里不应该与String.split()有任何问题。但是我会失去由StringUtils splitworker提供的性能改进,我必须自己处理null。 – 2011-12-28 13:06:31

2
I found folowing difference between String.split and splitByWholeSeparatorPreserveAllTokens 
  • splitByWholeSeparatorPreserveAllTokens处理其中 String.split()不
  • 在splitByWholeSeparatorPreserveAllTokensAdjacent隔板 当作隔板空令牌Null值。