2016-09-29 112 views
1

我想將字符串轉換爲int與Integer.parseInt(SIMNumber),但我得到錯誤bleow。我怎樣才能將一個字符串轉換爲int?我在互聯網上搜索並用Integer.pareInt(simNumber)找到了這種方式。Java:NumberFormatException.forInputString(NumberFormatException.java:65)

我很感激任何幫助。

代碼

byte[] simNumberArray = Arrays.copyOfRange(data, 17, i); 
String simNumber = new String(simNumberArray, "UTF-8"); // 13534035454 
int simNr = Integer.parseInt(simNumber); //The error appears at this line. 
this.record.setSimCardNumber(simNr); 

錯誤

Exception in thread "main" java.lang.NumberFormatException: For input string: "13534035454" 
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 
    at java.lang.Integer.parseInt(Integer.java:495) 
    at java.lang.Integer.parseInt(Integer.java:527) 
    at org.ShenzhenDecoder.decode(ShenzhenDecoder.java:59) 
    at org.ShenzhenTest.main(ShenzhenTest.java:22) 
+0

整數算術運算已成爲一個範圍內,請參閱文檔 –

+0

請不要對顯而易見的理由downvote的數字。這個問題寫得很好,有一個代碼片段和一個錯誤輸出。 – Bathsheba

回答

3

「13534035454」太大而不適合32位int。 (可能的最大值爲2147483647)

你應該嘗試轉換爲long,這是64位,並允許值高達大9223372036854775807

0

至於其他的答案公佈時,範圍足夠int,你可以長。

在其他說明中,建議您不要將電話號碼視爲整數,而應該照原樣使用(字符串)。

因爲我們一般需要時,需要像總,平均等