Java 数字格式验证
Posted
技术标签:
【中文标题】Java 数字格式验证【英文标题】:Java number format validation 【发布时间】:2020-08-05 12:02:30 【问题描述】:您能否建议使用 Java 验证数字格式的解决方案。 作为输入参数,我收到字符串。比如有欧洲格式:1.234,56 然后我做解析:
NumberFormat.getNumberInstance(locale).parse(value)
但在解析之前我需要验证。 输入数据示例: 1..234,,56 - 不应该有效但可以解析
【问题讨论】:
为什么它应该是无效的?根据什么规则?如果您的规则不是“可解析的内容是有效的”,那么 you 需要定义什么是有效的,例如使用正则表达式。 【参考方案1】:您可以构建正则表达式来检查字符串中包含逗号或小数的格式。 还可以参考正则表达式,例如: ^\d1,3|\d(([ ,]?\d3)*([.,]\d2+)?$)
你也可以看看这个:Java regex to check if string is valid number format (comma and decimal point placing)
【讨论】:
【参考方案2】:嗯,有很多可能的解决方案。但是对于这种情况,最好使用异常。当无法将字符串转换为数字时,基本上是给用户写一条消息,说他写错了数字,并要求他输入新的数字。要选择正确的号码类型,您可以使用overloading
。
try
NumberFormat.getNumberInstance(locale).parse(value)
catch(Exception e)
System.out.println("The number entered is invalid.");
// Enter the new number code
【讨论】:
以上是关于Java 数字格式验证的主要内容,如果未能解决你的问题,请参考以下文章