几周后,我终于找到了如何通过我的应用解析我的号码。但是现在应用程序在以下列格式给出数字时崩溃:92839283982938
或22.483.84.3883
。
我只是不知道如何让它接受这些数字格式。问题与条形码扫描仪有关,所以我真的需要接受这些数字格式。
我以前解析的代码是:
JSONObject c = user.getJSONObject(Integer.parseInt(xyz)-1);
答案 0 :(得分:1)
对于较长的号码,您应使用Long.parseLong()
代替Integer.parseInt()
。
下一个案例22.483.84.3883
不是数字。您将从此处获得NumberFormatException
。
您可以使用
try{
long val=Long.parseLong("xxxx")
}catch(NumberFormatException e){
// exception
}
如果您想将22.483.84.3883
或22-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);