我有以下代码来拆分我的输入字符串:
import org.apache.commons.lang.StringUtils;
public class SplitTest {
public static void main(String args[]) {
String input = "A||B||||D||E";
String result[] = StringUtils.split(input, "||");
for (int i = 0; i < result.length; i++) {
System.out.println("result[" + i + "]:" + result[i]);
}
}
}
我期望输出为:
预期输出:
result[0]:A
result[1]:B
result[2]:
result[3]:D
result[4]:E
实际输出:
result[0]:A
result[1]:B
result[2]:D
result[3]:E
谁能告诉我为什么会这样?我可以做些什么来实现我的预期输出?
最佳答案
您要找的方法是StringUtils.splitByWholeSeparatorPreserveAllTokens()
:
String result[] = StringUtils.splitByWholeSeparatorPreserveAllTokens(input, "||");
您也可以使用标准 Java 实现相同的结果,而无需使用 String.split()
和正则表达式的库:
String result[] = input.split("\\|\\|");
关于java - StringUtils 基于正则表达式拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24155988/