【发布时间】:2012-12-24 15:13:46
【问题描述】:
我想使用 SuperCSV CellProcessor 解析一个以逗号作为小数分隔符(',' 而不是 '.')的双精度数
我想将第一个元素 (0,35) 解析为 Double
0,35;40000,45
我尝试过类似的方法:
/** FRENCH_SYMBOLS */
private static final DecimalFormatSymbols FRENCH_SYMBOLS = new DecimalFormatSymbols(Locale.FRANCE);
DecimalFormat df = new DecimalFormat();
df.setDecimalFormatSymbols(FRENCH_SYMBOLS);
final CellProcessor[] processors = new CellProcessor[] {
new NotNull(new ParseDouble(new FmtNumber(df))),
new NotNull(new ParseBigDecimal(FRENCH_SYMBOLS)) };
ParseBigDecimal 工作得很好,但 parseDouble 似乎不起作用,它给了我一个异常:org.supercsv.exception.SuperCsvCellProcessorException: '0,35' could not be parsed as a Double
【问题讨论】:
-
在数字周围使用引号,例如:“1,000”、“20,000”、50、“test”。还是您的意思是要使用“;”作为分界线。你想把这条线转换成什么?
-
我想将该字段 0,35 解析为 Double,它给了我一个异常:org.supercsv.exception.SuperCsvCellProcessorException: '0,35' could not be parsed as a Double
-
我们可以根据自己的特殊需求创建一个实现 DoubleCellProcessor 的全新类supercsv.sourceforge.net/examples_new_cell_processor.html
标签: supercsv