Csv Univocity parser-提供的信息太少时自动检测假分隔符

Csv Univocity parser-提供的信息太少时自动检测假分隔符,csv,parsing,univocity,Csv,Parsing,Univocity,我将解析器设置为自动检测分隔符 CsvParserSettings settings = new CsvParserSettings(); settings.detectFormatAutomatically(); 我只有一条记录:47W2E2qxPs,http://usda.gov/mattis.html 我得到的是: code: 47W2E2qxPshttp url: //usda.gov/mattis.html 我希望分隔符是,,而不是: 因此,我的预期结果将是47W2E2qxPs和h

我将解析器设置为自动检测分隔符

CsvParserSettings settings = new CsvParserSettings();
settings.detectFormatAutomatically();
我只有一条记录:
47W2E2qxPs,http://usda.gov/mattis.html

我得到的是:

code: 47W2E2qxPshttp url: //usda.gov/mattis.html
我希望分隔符是
,而不是

因此,我的预期结果将是
47W2E2qxPs
http://usda.gov/mattis.html


我可以优雅地修改它吗?

这里是图书馆的作者。检测过程是一种启发式方法,它使用从部分输入的多行中收集的统计信息。因此,它在很大程度上取决于输入的大小

它的目的是处理您无法轻松确定CSV格式的情况,例如当用户向您上传随机文件时。如果您已经知道什么是正确的分隔符,请不要使用检测过程

在您的情况下,一行数据绝对不足以可靠地检测分隔符,尤其是在存在多个符号的情况下。除了在继续之前测试检测到的分隔符之外,您几乎无法对此进行任何操作:

parser.beginParsing(new File("/path/to/your.csv"));
CsvFormat format = parser.getDetectedFormat();
//check if the format is sane.
下一个版本(2.6.0)将包含更多选项来帮助启发式,例如提供一组允许的字符用作分隔符,这可能对您的情况有所帮助