这里的问题是引号没有正确转义。您的解析器无法处理。尝试univocity- parsers,因为这是Java的唯一解析器,我知道它可以处理带引号的值中的未转义的引号。它也比Commons CSV快4倍。试试这个代码:
//configure the parser to handle your situation
CsvParserSettings settings = new CsvParserSettings();
settings.setUnescapedQuoteHandling(STOP_AT_CLOSING_QUOTE);
//create the parser
CsvParser parser = new CsvParser(settings);
//parse your line
String[] out = parser.parseLine("116,6,2,29 Sep 10,\"\"JJ\" (60 min)\",\"http://www.tvmaze.com/episodes/4855/criminal-minds-6x02-jj\"");
for(String e : out){
System.out.println(e);
}
这将打印:
116
6
2
29 Sep 10
"JJ" (60 min)
http://www.tvmaze.com/episodes/4855/criminal-minds-6x02-jj
希望能帮助到你。
披露:我是该库的作者,它是开源的并且免费的(Apache 2.0许可证)