【发布时间】:2011-10-24 00:07:32
【问题描述】:
我有一个输入框,我的网页支持英语和德语。
在文本框中,用户只能输入整数。
那么我如何格式化数字,假设用户输入 1,2(德语),然后我想检查它是否是有效整数,但在此之前我需要将其转换回 1.2。我该怎么做..?
【问题讨论】:
标签: java locale number-formatting
我有一个输入框,我的网页支持英语和德语。
在文本框中,用户只能输入整数。
那么我如何格式化数字,假设用户输入 1,2(德语),然后我想检查它是否是有效整数,但在此之前我需要将其转换回 1.2。我该怎么做..?
【问题讨论】:
标签: java locale number-formatting
使用 JDK 对语言环境的支持:
public static void main(String[] args) throws Exception {
String str = "1,2";
Number number = DecimalFormat.getInstance(Locale.GERMAN).parse(str);
System.out.println(number);
}
打印:
1.2
【讨论】:
答案在问题中(或至少在其标签中)。使用NumberFormat解析输入的字符串,如果没有ParseException,则字符串为有效整数。
完全正确,NumberFormat 会很乐意将1,2ABC 解析为1.2。为避免这种情况,您可以使用 parse 方法以 ParsePosition 作为参数,并检查解析后的位置是否在字符串的末尾。
【讨论】: