gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 10:02:09 25 4
gpt4 key购买 nike

我需要验证显示的字符串是否为数字。该值的格式为 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: Cannot format given Object as Number

我也试过添加

formatter.applyPattern("###,###,###.##");

但这并没有帮助。

有什么想法吗?

我想我也可以使用正则表达式,但如果可能的话我想首先使用这个 DecimalFormatter

最佳答案

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

DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setDecimalSeparator(',');
dfs.setGroupingSeparator('.');
DecimalFormat df = new DecimalFormat();
df.setDecimalFormatSymbols(dfs);

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

关于java - 使用多个点分组分隔符格式化数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57139891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com