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。
谢谢
我正在尝试使用 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。
谢谢