我不明白 NumberFormat 中的某些内容,在美国语言环境中,它假设将逗号 (",") 视为组分隔符 - 数千。
为什么它会忽略此语言环境不正确位置的逗号?
NumberFormat format = DecimalFormat.getInstance(Locale.US);
System.out.println(format.parse("5,500").longValue()); //5500
System.out.println(format.parse("550,0").longValue()); //5500
System.out.println(format.parse("5500,").longValue()); //5500
关于如何根据语言环境将 String 解析为 Long 的任何其他想法(假设输入“,” 在不正确的地方应该失败)?
最佳答案
正如 javadev 提到的,parse 方法似乎忽略了千位分隔符。我想如果你想要严格解析,你将不得不自己实现一个解析方法(使用 NumberFormat/DecimalFormat 的信息)。
关于Java NumberFormat 忽略美国语言环境中的逗号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15809225/