如何拆分带有值的字符串也包含在java中的分隔符?

时间:2017-07-11 03:25:08

标签: java string split delimiter

我有一个值为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";但它仍然没有返回我预期的结果。

任何想法如何实现我的预期结果?

1 个答案:

答案 0 :(得分:0)

这对我有用:

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