繁体   English   中英

从csv文件读取记录标头-Java

[英]reading a record header from csv file - java

我有一个csv文件,看起来像这样:

Field 1    field 2                             field 3             
TestData   MARTIN,12/2/2/2:JOHN 12/2/2      2015/12/12

我想从field 2提取名称,例如MartinJohn 我读了文件并用,分隔。 这不能完全起作用,因为field 2包含逗号,并且将其拆分。 是否有解决方法或从特定单元格中提取数据的方法(例如,只给我文件中的所有字段2)?

通常,如果CSV上的字段包含逗号,则需要用引号引起来。 因此,一行应如下所示:

TestData,"MARTIN,12/2/2/2:JOHN 12/2/2",2015/12/12为正确的CSV。

您确定没有TSV(制表符分隔值)文件吗? 在这种情况下,您可以拆分

String[] fields = line.split('\t')
String[] persons = split(1).split(',')

处理CSV文件的最佳方法是使用CSV库。 我使用OpenCSV http://opencsv.sourceforge.net/,但还有其他地方。 OpenCSV与读取标头等一起很好地处理了转义逗号。它还处理制表符分隔的文件。

包含逗号的字段应在CSV中引用,而包含引号的字段将用另一个引号将其转义。 例如:

"here's a comma, and some ""quoted text"" as well"

但是,CSV“格式”有点噩梦, 没有适当的规范

我不建议尝试在已有好的解析器时尝试编写自己的解析器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM