幾個星期後,我終於找到了如何通過我的應用程序解析我的號碼。但是現在當以以下格式給出數字時,該應用程序崩潰:92839283982938
或22.483.84.3883
。ParseInt在較長的數字上崩潰
我只是不知道如何讓它接受這些數字格式。問題與條形碼掃描儀相關,所以我真的需要它來接受這些數字格式。
我用來解析的代碼是:
JSONObject c = user.getJSONObject(Integer.parseInt(xyz)-1);
幾個星期後,我終於找到了如何通過我的應用程序解析我的號碼。但是現在當以以下格式給出數字時,該應用程序崩潰:92839283982938
或22.483.84.3883
。ParseInt在較長的數字上崩潰
我只是不知道如何讓它接受這些數字格式。問題與條形碼掃描儀相關,所以我真的需要它來接受這些數字格式。
我用來解析的代碼是:
JSONObject c = user.getJSONObject(Integer.parseInt(xyz)-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);
你知道我怎麼能接受22.483.84.3883?或者包含破折號? – derhak 2014-10-20 08:19:26
對不起,但我不明白,我需要更換以使其有效? – derhak 2014-10-20 08:22:06
@derhak檢查我的編輯。 – 2014-10-20 08:22:22