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);