Univocity - 如何为 "format auto-detection" 上的分隔符定义优先顺序?

Univocity - How to define a preference order for the delimiter on the "format auto-detection"?

我正在尝试使用 Univocity format auto-detection 来解析此 CSV table:

HEADER1, HEADER2, HEADER3
11, 12, 13
21, 22, 23
31, 32, 33

如您所见,有 相同数量的逗号 ',' 和 spaces ' '。 问题是查找定界符的试探法优先考虑 ' ' 而不是 ',' 字符。

所以在这种情况下,检测到的分隔符是 space ' '。然后,单元格的值是错误的,因为逗号被视为值的一部分:

我看到有一个功能 setDelimiterDetectionEnabled 可以按优先顺序定义定界符,但我无法让它工作。

我这样使用它:setDelimiterDetectionEnabled(true, ',', ' '),但仍然选择 space 作为分隔符。

如果我在 CSV table 中删除 1 space(因此逗号会比 spaces 多)逗号被选为分隔符。

这是 scala 代码,但我认为这不相关,因为该库是用 java:

编写的
val settings = new CsvParserSettings
settings.setDelimiterDetectionEnabled(true, ',', ' ')
val parser = new CsvParser(settings)
val spaceAndCommaTable = new File("/home/pr/SPACE_AND_COMMA.csv")
val parsed = parser.parseAll(spaceAndCommaTable, "UTF-8")
val format = parser.getDetectedFormat

我希望有 format.getDelimiter 逗号 ',',但实际的分隔符是 space ' '

这里是图书馆的作者。我刚刚解决了这个问题,明天将发布最终版本 2.8.3 以包括使其正常工作所需的调整。为了测试,您已经可以使用最新的 2.8.3-SNAPSHOT。

谢谢