【发布时间】:2019-07-22 05:56:43
【问题描述】:
我需要验证显示的字符串是否为数字。值的格式为 123.345.678,99。 即,分组分隔符是点,小数分隔符是逗号。
我尝试了设置分隔符的 DecimalFormatter:
DecimalFormat formatter = (DecimalFormat) NumberFormat.getCurrencyInstance();
DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols();
symbols.setGroupingSeparator('.');
symbols.setDecimalSeparator(',');
formatter.setDecimalFormatSymbols(symbols);
formatter.setGroupingUsed(true);
System.out.println(formatter.format(incoming));
但是,在这种情况下,我得到了
java.lang.IllegalArgumentException:无法将给定的对象格式化为数字
我也试过添加
formatter.applyPattern("###,###,###.##");
但它没有帮助。
有什么想法吗?
我想我也可以使用正则表达式,但如果可能的话,我想首先使用这个DecimalFormatter。
【问题讨论】:
-
我认为你想要的方法是
parse,而不是format。它们是相互对立的。 -
这个问题与 Selenium 有什么关系?我错过了什么吗?
标签: java format decimalformat