【问题标题】:How can I split this string on comma and quotation mark? [duplicate]如何在逗号和引号上拆分此字符串? [复制]
【发布时间】:2013-02-03 07:45:23
【问题描述】:

我从一个文本文件中读取,有时我会得到一个字符串,例如:

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

我需要这样拆分字符串:

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

我该怎么做?

【问题讨论】:

  • 尝试用 ' 替换 " 但后来我不知道如何继续

标签: java split


【解决方案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"); 以删除引号。

【讨论】:

    猜你喜欢
    • 2014-02-11
    • 2016-03-19
    • 1970-01-01
    • 2011-12-25
    • 2011-04-16
    相关资源
    最近更新 更多