在org.apache.commons.lang3.StringUtils
类中,splitByWholeSeparator(String, String)
,splitPreserveAllTokens(String, String)
和splitByWholeSeparatorPreserveAllTokens(String, String)
有什么区别?我检查了JavaDoc,并不清楚为什么我会使用一种方法来代替其他方法。
答案 0 :(得分:1)
仔细阅读文档后,我发现可能是问题所在。
split
接受分隔符字符串,并将其中的每个字符都视为分隔符char。相邻的分隔符char被视为一个,没有空数组元素。splitPreserveAllTokens
的功能相同,但是相邻的分隔符导致空数组元素。splitByWholeSeparator
使用整个分隔符字符串来拆分字符串。相邻的分隔符字符串被视为一个,没有空数组元素。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"]