我有一个csv文件,其值低于:
10〜30〜 “映射~~值” 〜40〜50
当我尝试使用分隔符〜
解析此csv时我得到的值如下:
10,30,映射,值,40,50
但实际结果如下:
10,30,映射~~值,40,50(当任何内容用双引号括起来时,它应该取总值)
任何人都可以在这方面帮助我。
答案 0 :(得分:0)
虽然CSV文件看起来很简单,但它们非常复杂,因为它们需要处理分隔符是值的一部分(在您的情况下使用引号)或甚至在字符串中出现引号(通常编码为double)的情况引号)。因此,简单的String.split不足以解析CSV文件。 有几个库提供CSV阅读器,使用其中之一。例如提到的openCSV,或者来自Apache的那个:http://commons.apache.org/proper/commons-csv/
答案 1 :(得分:0)
试试这个。
假设line
是CSV文件中的一行。以下代码将正确地拆分为项目:
String[] items = line.trim().split(',(?=([^\"]*\"[^\"]*\")*[^\"]*$)')