viv*_*nam 34 java exception number-formatting
NumberFormatException
当我尝试解析265,858时,我得到了Integer.parseInt()
.
有没有办法将其解析为整数?
Tom*_*icz 71
这个逗号是小数分隔符还是这两个数字?在第一种情况下,你必须提供Locale
给NumberFormat
使用逗号作为小数点分隔符类:
NumberFormat.getNumberInstance(Locale.FRANCE).parse("265,858")
Run Code Online (Sandbox Code Playgroud)
这导致了265.858
.但是使用美国语言环境你会得到265858
:
NumberFormat.getNumberInstance(java.util.Locale.US).parse("265,858")
Run Code Online (Sandbox Code Playgroud)
那是因为在法国,他们将逗号视为小数分隔符,而在美国 - 作为分组(千)分隔符.
如果这是两个数字 - String.split()
它们并独立地解析两个单独的字符串.
mic*_*cha 19
您可以在将其,
解析为int之前将其删除:
int i = Integer.parseInt(myNumberString.replaceAll(",", ""));
Run Code Online (Sandbox Code Playgroud)
ano*_*ave 11
如果它是一个数字并且您想要删除分隔符,NumberFormat
则会向您返回一个数字.使用该getNumberInstance
方法时,请确保使用正确的Locale .
例如,某些Locales将逗号和小数点交换为您可能习惯的内容.
然后只需使用该intValue
方法返回一个整数.但是,您必须将整个事物包装在try/catch块中,以解释Parse Exceptions.
try {
NumberFormat ukFormat = NumberFormat.getNumberInstance(Locale.UK);
ukFormat.parse("265,858").intValue();
} catch(ParseException e) {
//Handle exception
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
73326 次 |
最近记录: |