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',  
';'

我怎样才能做到这一点?

4

1 回答 1

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

于 2013-02-18T19:34:28.580 回答