如何拆分一个字符串,其值也包含 java 中的分隔符?

How to split a string with value contains the delimiter also in java?

我有一个值为 String sData = "abc|def|\"de|er\"|123"; 的字符串,我需要用分隔符 - “|” 将其拆分。在这种情况下,我的预期结果将是

abc
def
"de|er"
123

下面是我的代码

String sData = "abc|def|\"de|er\"|123";
    String[] aSplit = sData.split(sDelimiter);

    for(String s : aSplit) {
        System.out.println(s);
    }

但实际结果如下

abc
def
"de
er"
123

我已经尝试过这种模式 - String sData = "abc|def|\"de\|er\"|123"; 但它仍然没有返回我预期的结果。

知道如何才能达到我的预期结果吗?

这对我有用:

String sData = "abc|def|\"de|er\"|123";
    String[] aSplit = sData.split("\|");

        for(int i = 0; i < aSplit.length; i++) {
            if(aSplit[i].startsWith("\"")) {
                if(aSplit[i+1].endsWith("\"")) {
                    aSplit[i] = aSplit[i] + "|" + aSplit[i+1];
                    aSplit[i+1] = "";
                }
            }
        }

    for(String s : aSplit) {
        if(!s.equals(""))
        System.out.println(s);
    }

输出:

abc
def
"de|er"
123