2017-07-11 77 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

相關問題