为了方便阅读代码,本文中直接用了 println,这需要一些技巧,因为
import static java.lang.System.out.println;
是错误的。具体方法见 Java 如何静态导入 import static println。
StringUtils 类的全路径:
import org.apache.commons.lang3.StringUtils;
StringUtils 类中 split 方法有很多,这里介绍部分。
splitByWholeSeparatorPreserveAllTokens 拆分字符串
splitByWholeSeparatorPreserveAllTokens 会将字符串按照指定字符串拆分。
String[] result;
result = StringUtils.splitByWholeSeparatorPreserveAllTokens("ab:cd:ef", ":");
println( Arrays.toString(result) ); // ["ab", "cd", "ef"]
result = StringUtils.splitByWholeSeparatorPreserveAllTokens("ab::cd:ef", ":");
println( Arrays.toString(result) ); // ["ab", "", "cd", "ef"]
result = StringUtils.splitByWholeSeparatorPreserveAllTokens(":ab::cd:ef", ":");
println( Arrays.toString(result) ); // ["", "ab", "", "cd", "ef"]
result = StringUtils.splitByWholeSeparatorPreserveAllTokens(":ab::cd:ef", "::");
println( Arrays.toString(result) ); // [":ab", "cd:ef"]
splitByWholeSeparator 拆分字符串
splitByWholeSeparator 会将字符串按照指定字符串拆分,同时,会去除空字符串。
String[] result;
result = StringUtils.splitByWholeSeparator("ab:cd:ef", ":");
println( Arrays.toString(result) ); // ["ab", "cd", "ef"]
result = StringUtils.splitByWholeSeparator("ab::cd:ef", ":");
println( Arrays.toString(result) ); // ["ab", "cd", "ef"]
result = StringUtils.splitByWholeSeparator(":ab::cd:ef", ":");
println( Arrays.toString(result) ); // ["ab", "cd", "ef"]
result = StringUtils.splitByWholeSeparator(":ab::cd:ef", "::");
println( Arrays.toString(result) ); // [":ab", "cd:ef"]