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

は '' deer ''または '' de | er "'ですか? –

+0

@RamanSahasi良い点。 Lemme fix that –

+0

こんにちは枢機卿、これは私のために働く。感謝。 – chris

関連する問題