当我尝试使用NumberFormatException
解析265,858时,我收到Integer.parseInt()
。
有没有办法将其解析为整数?
答案 0 :(得分:66)
这个逗号是小数分隔符还是这两个数字?在第一种情况下,您必须提供使用逗号作为小数分隔符的Locale
到NumberFormat
类:
NumberFormat.getNumberInstance(Locale.FRANCE).parse("265,858")
这导致265.858
。但是使用美国语言环境,您将获得265858
:
NumberFormat.getNumberInstance(java.util.Locale.US).parse("265,858")
那是因为在法国他们把逗号视为小数分隔符,而在美国则是分组(千)分隔符。
如果它们是两个数字 - String.split()
它们并且独立地解析两个单独的字符串。
答案 1 :(得分:19)
您可以在将,
解析为int:
int i = Integer.parseInt(myNumberString.replaceAll(",", ""));
答案 2 :(得分:10)
如果是一个号码&如果要删除分隔符,NumberFormat
将为您返回一个数字。使用getNumberInstance
方法时,请确保使用正确的区域设置。
例如,某些Locales将逗号和小数点交换为您可能习惯的内容。
然后只需使用intValue
方法返回一个整数。你必须将整个东西包装在try / catch块中,以解释Parse Exceptions。
try {
NumberFormat ukFormat = NumberFormat.getNumberInstance(Locale.UK);
ukFormat.parse("265,858").intValue();
} catch(ParseException e) {
//Handle exception
}
答案 3 :(得分:3)
一种选择是删除逗号:
"265,858".replaceAll(",","");
答案 4 :(得分:2)
点击给我的第一件事,假设这是一个数字,是......
String number = "265,858";
number.replaceAll(",","");
Integer num = Integer.parseInt(number);
答案 5 :(得分:2)
或者您可以使用NumberFormat.parse
,将其设置为仅整数。
http://docs.oracle.com/javase/1.4.2/docs/api/java/text/NumberFormat.html#parse(java.lang.String)
答案 6 :(得分:0)
试试这个:
String x = "265,858 ";
x = x.split(",")[0];
System.out.println(Integer.parseInt(x));
编辑: 如果你想要四舍五入到最接近的整数:
String x = "265,858 ";
x = x.replaceAll(",",".");
System.out.println(Math.round(Double.parseDouble(x)));