2013-02-18 72 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");删除引号。

相关问题