我有一些用逗号分隔的记录。我需要分离文件中的记录并将其放在一个数组中。我遇到的问题是文本以逗号分隔,但某些字段中有逗号,而且不应该是分隔符。
例如,当字段指定地址时,例如:"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以及所有这些,我宁愿不使用它。
答案 0 :(得分:0)
如果您需要忽略的逗号在引号内,则可以使用OpenCSV之类的包。它将照顾忽略引用的昏迷。 Apache Commons也列出了其他一些here。
但是,如果没有引用昏迷,那么你无法让计算机知道一个昏迷是一个分界符而一个不是。
答案 1 :(得分:0)
这实际上取决于您的情况,但我可以考虑采用一些方法来实现这一目标。
A)在逗号分隔中查找模式。 IE浏览器。您有一个数据库,您可以从中读取值。您正在查看的表是具有姓氏,名字和地址的客户表。如果地址中有一个额外的逗号,你不想拆分,你可以写一些方法来忽略每三个逗号。
B)将您想要分隔值的所有逗号替换为数据中未出现的其他特殊字符,并根据该字符而不是逗号分割数据。
正如我所说,这实际上取决于您的情况,以及您正在阅读的数据。也许如果您提供有关问题背景的更多信息,您可以得到更精确的答案。