2013-02-18 46 views
0

我從一個文本文件中讀取,有時我在一個字符串像得到:如何在逗號和引號分開這個字符串?

;onor Oyj,Native,Uor Oyj1,"Uponor Oyj, UBS, Innovation AB",39639d4d26:-21f7; 

我需要拆分這樣的字符串:

'onor Oyj', 
'Native', 
'Uor Oyj1', 
'Uponor Oyj, UBS, Innovation AB', 
'39639d4d26:-21f7', 
';' 

我怎樣才能做到這一點?

+0

試圖取代「與」但後來我不知道如何繼續 – coco 2013-02-18 19:23:57

回答

1

喜歡的東西:

String str = ";onor Oyj,Native,Uor Oyj1,\"Uponor Oyj, UBS, Innovation AB\",39639d4d26:-21f7;"; 
    char[] c = str.toCharArray(); 
    boolean inQuote = false; 
    for (int i = 0; i < c.length; i++) 
    { 
    if (c[i] == ',' && !inQuote) 
     c[i] = '\01'; // some value that doesn't appear in the string 
    if (c[i] == '"') 
     inQuote = !inQuote; 
    } 
    String[] arr2 = String.valueOf(c).split("\\01"); 
    for (String s: arr2) 
    { 
    System.out.println(s); 
    } 

輸出:

;onor Oyj 
Native 
Uor Oyj1 
"Uponor Oyj, UBS, Innovation AB" 
39639d4d26:-21f7; 

更換String[] arr2 = String.valueOf(c).split("\\01");String[] arr2 = String.valueOf(c).replaceAll("\"", "").split("\\01");刪除引號。

相關問題