用Java解析逗号分隔的文本

Cry*_*tal 2 java

如果我有一个ArrayList,其数据行可能如下所示:

bob,      jones,    123-333-1111
    james, lee,  234-333-2222
Run Code Online (Sandbox Code Playgroud)

如何删除额外的空格并获取相同的数据?我以为你可以通过","吐出字符串,然后使用trim(),但我不知道它的语法是什么或如何实现它,假设这是一个好的方法,因为我' d想要将每个字段放在一个数组中.所以在这种情况下有一个[2] [3]数组,然后在删除空格后将它放回到ArrayList中.但这似乎是一种有趣的方式,如果我的列表发生了变化,那就不可扩展了,比如最后收到一封电子邮件.有什么想法吗?谢谢.

编辑:Dumber问题,所以我仍然不确定如何处理数据,因为我不能这样做:

for (String s : myList) {
    String st[] = s.split(",\\s*");
}
Run Code Online (Sandbox Code Playgroud)

因为st []将在foreach循环后失去范围.如果我事先声明String st [],我不知道创建我的数组有多大?谢谢.

cas*_*nca 5

您可以扫描整个字符串并构建一个新字符串,跳过逗号后出现的任何空格.这比分裂和重新加入更有效.这样的事情应该有效:

String str = /* your original string from the array */;
StringBuilder sb = new StringBuilder();
boolean skip = true;

for (int i = 0; i < str.length(); i++) {
  char ch = str.charAt(i);

  if (skip && Character.isWhitespace(ch))
    continue;

  sb.append(ch);

  if (ch == ',')
    skip = true;
  else
    skip = false;
}

String result = sb.toString();
Run Code Online (Sandbox Code Playgroud)