gpt4 book ai didi

java - 带有 java.text.DecimalFormat 的可选加号

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:42:48 25 4
gpt4 key购买 nike

我想解析 Java 中带加号、减号或无符号的十进制数,并获取 BigDecimal 的实例。这可以简单地通过调用构造函数 new BigDecimal(string) 来实现。它为以下所有字符串生成适当的结果:

"1", "12", "123", "123.0", "+123.0", "-123.0", "+123", "-123"

但是,我需要根据特定的区域设置解析字符串,即使用逗号小数点分隔符。有没有一种方法可以针对特定语言环境解析所有这些数字?

我尝试了 NumberFormatDecimalFormat 但无法正确配置。

final DecimalFormat valueParser = (DecimalFormat) NumberFormat.getNumberInstance(new Locale("cs"));
valueParser.setParseBigDecimal(true);

这样的valueParser 不接受加号。有一个选项可以将模式设置为 DecimalFormat。但是,加号是否可以在模式中指定为可选?

最佳答案

您可以创建接受或更好地需要前导“+”的 DecimalFormat。

    DecimalFormat f (DecimalFormat)NumberFormat.getNumberInstance(new Locale(...));
f.setPositivePrefix("+");
f.parse("+123");

但是前缀不是是可选的,因此它对您的情况没有帮助。作为一个非常简单的解决方案,为什么不检查(修剪过的)字符串是否以“+”字符开头,在这种情况下,在将字符串传递给 DecimalFormats 解析方法之前剪切前导“+”。

关于java - 带有 java.text.DecimalFormat 的可选加号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31266123/

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