【发布时间】:2014-10-28 18:25:45
【问题描述】:
我有一个具有以下值的 csv 文件:
10~30~"映射~~值"~40~50
当我尝试用分隔符解析这个 csv 时 ~
我得到的值如下:
10,30,mapping, ,values,40,50
但实际结果应该是这样的:
10,30,mapping~~values,40,50(当任何东西用双引号括起来时,它应该取总值)
谁能在这方面帮助我。
【问题讨论】:
-
不要重新发明轮子,使用轻量级和高性能的
opencsv库。 -
你用什么来解析 csv?
-
下面是我使用的代码 String line = null; BufferedReader bufferedReader = new BufferedReader(new FileReader( csvFilePath)); while ((line = bufferedReader.readLine()) != null) { line = line.toString(); csvRecords.add(Arrays.asList(line.split(delimiter))); }
-
你为什么不使用第一个 " 分割线作为分隔符并将每个元素添加到字符串数组中,比如说 A,然后循环 A 并验证字符串是否不包含~~ 所以像分隔符一样使用 ~ 拆分它,然后将每个元素添加到数组 B 中,否则如果来自 A 的字符串包含 ~~ 然后将其添加到 B
-
通过编辑而不是添加 cmets 来澄清您的问题。