splitByWholeSeparator,splitPreserveAllTokens和splitByWholeSeparatorPreserveAllTokens之间的区别

时间:2019-04-17 20:12:20

标签: java split apache-stringutils apache-commons-lang3

org.apache.commons.lang3.StringUtils类中,splitByWholeSeparator(String, String)splitPreserveAllTokens(String, String)splitByWholeSeparatorPreserveAllTokens(String, String)有什么区别?我检查了JavaDoc,并不清楚为什么我会使用一种方法来代替其他方法。

1 个答案:

答案 0 :(得分:1)

仔细阅读文档后,我发现可能是问题所在。

  1. split接受分隔符字符串,并将其中的每个字符都视为分隔符char。相邻的分隔符char被视为一个,没有空数组元素。
  2. splitPreserveAllTokens的功能相同,但是相邻的分隔符导致空数组元素。
  3. splitByWholeSeparator使用整个分隔符字符串来拆分字符串。相邻的分隔符字符串被视为一个,没有空数组元素。
  4. splitByWholeSeparatorPreserveAllTokens的作用相同,但是相邻的分隔符字符串导致空数组元素。

一个例子:

String: "a,b,;,;e,f,,g,h"
Separator: ",;"

split: ["a","b","e","f,"g",h"]
splitPreserveAllTokens: ["a","b","","","","e","f","","g","h"]
splitByWholeSeparator: ["a,b","e,f,,g,h"]
splitByWholeSeparatorPreserveAllTokens: ["a,b","","e,f,,g,h"]