为了账号安全,请及时绑定邮箱和手机立即绑定

使用多个点分组分隔符格式化数字

使用多个点分组分隔符格式化数字

波斯汪 2023-04-13 14:17:46
我需要验证显示的字符串是否为数字。该值的格式为 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。
查看完整描述

1 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

我会丢失货币,只是明确地DecimalFormat用相关符号创建一个新货币。一旦你有了它,你应该用它来解析传入的字符串,而不是格式化它:


DecimalFormatSymbols dfs = new DecimalFormatSymbols();

dfs.setDecimalSeparator(',');

dfs.setGroupingSeparator('.');

DecimalFormat df = new DecimalFormat();

df.setDecimalFormatSymbols(dfs);


System.out.println(df.parse(stringToTest));


查看完整回答
反对 回复 2023-04-13
  • 1 回答
  • 0 关注
  • 101 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信