ParseInt在更长的数字上崩溃

时间:2014-10-20 08:16:32

标签: java android json parseint

几周后,我终于找到了如何通过我的应用解析我的号码。但是现在应用程序在以下列格式给出数字时崩溃:9283928398293822.483.84.3883

我只是不知道如何让它接受这些数字格式。问题与条形码扫描仪有关,所以我真的需要接受这些数字格式。

我以前解析的代码是:

JSONObject c = user.getJSONObject(Integer.parseInt(xyz)-1);

2 个答案:

答案 0 :(得分:1)

对于较长的号码,您应使用Long.parseLong()代替Integer.parseInt()

下一个案例22.483.84.3883不是数字。您将从此处获得NumberFormatException

您可以使用

try{
   long val=Long.parseLong("xxxx")
}catch(NumberFormatException e){
   // exception 
}

如果您想将22.483.84.388322-483-84-3883视为有效案例,则需要先替换.-

例如:

 long val=Long.parseLong("22.483.84.3883".replaceAll("\\.", ""));
 System.out.println(val);

答案 1 :(得分:0)

请改用Long.parseLong。整数类型不能包含如此大的数字(整数的最大值是2 ^ 31-1,远小于92839283982938)。另外,你应该消除这些点。

尝试:

JSONObject c = user.getJSONObject(Long.parseLong(xyz.replace(".",""))-1);