Java 大十进制解析问题

Java 大十进制解析问题,java,parsing,bigdecimal,string-parsing,Java,Parsing,Bigdecimal,String Parsing,我面临大十进制数字的问题。以下代码片段将解释我的问题: BigDecimal parsedValue = (BigDecimal) decimalFormat.parse(input); 这里的输入是字符串类型。现在假设输入值是135abc24,在这种情况下,parsedValue的值是135,但我想检查这些输入并给出一个错误,而不是截断字符串和其余部分。只想添加输入字符串也可能包含指数编号,所以我甚至不能只检查数字字符串。如果您需要更多信息或问题不明确,请告诉我 提前感谢。根据,Decim

我面临大十进制数字的问题。以下代码片段将解释我的问题:

 BigDecimal parsedValue = (BigDecimal) decimalFormat.parse(input);
这里的输入是字符串类型。现在假设输入值是135abc24,在这种情况下,parsedValue的值是135,但我想检查这些输入并给出一个错误,而不是截断字符串和其余部分。只想添加输入字符串也可能包含指数编号,所以我甚至不能只检查数字字符串。如果您需要更多信息或问题不明确,请告诉我


提前感谢。

根据,
DecimalFormat.parse()
支持以
引用形式出现的第二个参数,该参数将根据解析停止的位置进行更新。然后,您可以将其与字符串的开头进行比较,并确定整个字符串是否被接受。

您可以使用BigDecimal创建BigDecimal(有关详细信息,请参阅链接),并在输入字符串之前应用任何转换。如果输入不是有效的表示形式,构造函数将抛出一个
NumberFormatException

Hi Jens,感谢您的回复。取得了预期的效果。想要投票,但没有15个声誉:(无论如何,非常感谢。嗨,放松,谢谢你的回复。我没有尝试过这个选项,因为我用Jens的答案得到了想要的结果。但是我会尝试一下,并且一定会在这里更新。谢谢!是的,这是解决问题的另一个选项。正在浏览旧问题并找到我的评论。迟做总比不做好:)