我有一个csv文件,如下所示:
Field 1 field 2 field 3
TestData MARTIN,12/2/2/2:JOHN 12/2/2 2015/12/12
我想从field 2
中提取名称,例如Martin
和John
。我在文件中读到并按,
拆分。这并不完全有效,因为field 2
内部包含逗号并将其拆分。是否有解决方法或从特定单元格中提取数据的方法(例如,只是从文件中提取所有字段2)?
答案 0 :(得分:0)
通常,如果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(',')
答案 1 :(得分:0)
处理CSV文件的最佳方法是使用CSV库。我使用OpenCSV http://opencsv.sourceforge.net/但还有其他人。 OpenCSV可以很好地处理转义逗号,以及读取标题等。它还处理制表符分隔文件。
答案 2 :(得分:0)
包含逗号的字段应在CSV中引用,包含引号的字段将使其被另一个引号转义。例如:
"here's a comma, and some ""quoted text"" as well"
然而,CSV"格式"有点噩梦,with no proper specification。
我不建议在good ones already exist时尝试编写自己的解析器。