Java ParseInt在较长的数字上崩溃

Java ParseInt在较长的数字上崩溃,java,android,json,parseint,Java,Android,Json,Parseint,几周后,我终于发现了如何通过我的应用程序解析我的数字。但现在,当以以下格式给出一个数字时,应用程序崩溃:92839283982938或22.483.84.3883 我只是不知道如何让它接受这些数字格式。问题是连接到条形码扫描仪,所以我真的需要它来接受这些数字格式 我用来解析的代码是: JSONObject c = user.getJSONObject(Integer.parseInt(xyz)-1); 改用Long.parseLong。整数类型不能包含如此大的数字(整数的最大值为2^31-1,

几周后,我终于发现了如何通过我的应用程序解析我的数字。但现在,当以以下格式给出一个数字时,应用程序崩溃:
92839283982938
22.483.84.3883

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

我用来解析的代码是:

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

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

尝试:


对于较长的数字,应使用
Long.parseLong()
而不是
Integer.parseInt()

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

你可以用

try{
   long val=Long.parseLong("xxxx")
}catch(NumberFormatException e){
   // exception 
}
<> >如果想考虑<代码> 22.48 3.84.38 83/代码>或<代码> 22-48~84-38 83>代码>,则需要先替换<代码> .<代码>或<代码> -<代码> >

例如:


它还会接受带有多个断点的数字吗。?还是破折号?@derhak您应该在解析数字之前删除断点。您知道如何使其接受22.483.84.3883吗?还是包含破折号的?抱歉,我不明白,我需要替换什么才能使其有效?
try{
   long val=Long.parseLong("xxxx")
}catch(NumberFormatException e){
   // exception 
}
 long val=Long.parseLong("22.483.84.3883".replaceAll("\\.", ""));
 System.out.println(val);