java - StringUtils 基于正则表达式拆分

标签 java regex apache-stringutils

我有以下代码来拆分我的输入字符串:

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/

相关文章:

java - 如何更改 Java 的 ZonedDateTime 中的时区

regex - 正则表达式匹配月份名称,然后匹配年份

iOS HTML 重写?

java - 用空格分隔列表项,用选项卡分隔更高级别的指标

java - apache 常见 StringUtils.replacePattern 与 java.lang.String.replaceAll

java - ID 必须存在于容器中或作为生成的列,缺少 id : id

java - 字符串到 Localdate DateTimeParseException

java - 如何有效地检查给定的 URL(String) 是否包含 Java 中的白名单域(String)

java - JUnit - 空指针异常

c# - .NET正则表达式: Get paragraphs