假设我有一个德语格式的货币字符串:
String money="1.203.432,25";
我想检查金钱是否是有效的货币值(value)。 “0,00”有效,“134.20,24”无效,“02,23”无效等等。我怎样才能用Java做到这一点?
最佳答案
使用本地化的数字格式(如果始终采用德语格式,则使用正则表达式)。
正则表达式可能类似于 ^(?:0|[1-9][0-9]{0,2}(?:\.[0-9]{3})*),[0-9]{2}$
,与 ^
和$
使用 String#matches()
时不需要或Matcher#matches()
.
数字格式可以是 DecimalFormat
喜欢 ###,##0.00
或者只是使用NumberFormat.getInstance( Locale.GERMAN )
。然而,数字格式的问题在于它允许数字有前导零,因此如果您想禁止这些数字,您可以检查第一个数字是否为零。
关于java - 如何在java中验证货币字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32888014/