2017-07-11 46 views
1

我有一个字符串值 - String sData = "abc|def|\"de|er\"|123";,我需要用分隔符 - “|”来分割它。在这种情况下,我预期的结果将是如何用值分割字符串还包含在java中的分隔符?

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

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

+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 
+0

预计是“鹿”还是“德尔”? –

+0

@RamanSahasi好点。勒米修复 –

+0

嗨,感谢卡迪纳尔,这对我很有用。赞赏。 – chris

相关问题