【问题标题】:How to split a string with value contains the delimiter also in java? [duplicate]java - 如何在Java中使用包含分隔符的值拆分字符串? [复制]
【发布时间】:2017-07-11 03:25:07
【问题描述】:

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

知道如何实现我的预期结果吗?

【问题讨论】:

  • 我认为一般来说要处理这个问题,您需要某种解析器功能。

标签: java string split delimiter


【解决方案1】:

这对我有用:

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

【讨论】:

  • 预期是"deer""de|er"?
  • @RamanSahasi 好点。让我解决这个问题
  • 嗨,谢谢红衣主教,这对我有用。赞赏。
  • @chris 没问题。不要忘记对答案投票;)
猜你喜欢
  • 1970-01-01
  • 2014-02-08
  • 2014-09-22
  • 1970-01-01
  • 2017-07-03
  • 2019-10-03
  • 1970-01-01
  • 1970-01-01
  • 2012-09-04
相关资源
最近更新 更多