1

我有一些用逗号分隔的记录。我需要将文件中的记录分开并将其放入一个数组中。我遇到的问题是文本是逗号分隔的,但某些字段中有逗号,这些不应该是分隔符。

例如,当字段指定地址时,如下例所示:"2, foo , 403 HAPPY LANE Seattle, WA., etc"

下面是我正在使用的代码示例:

// Start streams....
String str = null;
    List<String> items = null;

    while((str = bufr.readLine()) != null) {
     items = Arrays.asList(str.replace("\"", "").split("\\s*,\\s*"));
     while(true) {
         System.out.println (items);

我知道 csv 和所有这些,但我宁愿不使用它。

4

2 回答 2

0

如果您需要忽略的逗号在引号内,那么您可以使用诸如OpenCSV 之类的包。它将忽略引用的昏迷。Apache Commons在这里也列出了一些其他的。

但是,如果没有引用逗号,则您无法期望计算机知道一个逗号是分隔符而另一个不是。

于 2012-11-13T17:46:50.777 回答
0

这实际上取决于您的情况,但是我可以想到几种可能的方法来做到这一点。

A)在你的逗号分隔中寻找一个模式。IE。您有一个从中读取值的数据库。您正在查看的表格是包含姓氏、名字和地址的客户表格。如果地址中有一个您不想拆分的额外逗号,您可以编写某种方法来忽略每三个逗号。

B) 将您要分隔值的所有逗号替换为另一个未出现在数据其他位置的特殊字符,并根据该字符而不是逗号拆分数据。

As I said, it's really dependent on your situation, and what data you are reading. Maybe if you provide some more information on the context of your question, you could get a more refined answer.

于 2012-11-13T17:55:18.347 回答