2016-09-29 114 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,你可以长。

在其他说明中,建议您不要将电话号码视为整数,而应该照原样使用(字符串)。

因为我们一般需要时,需要像总,平均等