【发布时间】:2011-10-19 00:56:34
【问题描述】:
我在使用 Spring 和 Java 将 String 解析为 Doubles 时遇到了一些问题。这与 Spring 并不完全相关,但它可能会让你陷入困境。
我有一个 CustomNumberEditor,用于轻松将字符串解析为双精度。 java.text.DecimalFormat 用作将 double 解析为字符串的十进制格式。但是,当您执行 numberFormat.parse(stringDouble) 如果字符串以数字开头并跟随字母时,返回的值是数字。即 12a 被解析为 12。对我来说这显然是错误的,我想轻松解决这个问题。
我想这应该以其他类型的 numberFormat 或属性或其他方式实现,但我找不到它。有什么想法吗?
【问题讨论】:
-
Double.parseDouble( String s) 不起作用? -
为什么要将包含字母的字符串解析为双精度?这没有意义。你为什么做这个?另外,我们可以看看一些代码吗?
-
@Joeblackdev:OP 允许用户在文本字段中输入双精度,并解析输入的文本以将其转换为双精度。当然,他必须处理格式错误的文本和国际化的数字。这确实很有意义。
-
很公平。那么正则表达式可能是最好的方法。将双精度模式与字符串匹配,如果不匹配则返回错误。如果匹配,则将字符串解析为双精度。
-
正如 Joeblackdev 所说。
标签: java spring parsing double number-formatting