Java:NumberFormatException.forInputString(NumberFormatException.java:65)

时间:2016-09-29 11:46:39

标签: java

我正在尝试使用Integer.parseInt(simNumber)将String转换为int,但是我得到了错误。如何将String转换为int?我在互联网上搜索并用Integer.pareInt(simNumber)找到了这种方式。

我感谢任何帮助。

代码

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)

3 个答案:

答案 0 :(得分:5)

int对此不够,尝试长类型

您还应该检查一下: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

答案 1 :(得分:3)

" 13534035454"太大了,不适合32位int。 (最大可能值为2147483647。)

你应该尝试转换为long,这是64位,允许值更大的9223372036854775807。

答案 2 :(得分:0)

当发布其他答案时,范围对于int来说足够了,你可以长。

另请注意,建议您不要将电话号码作为整数使用,而是按原样使用(字符串)。

因为我们通常需要算术运算时需要的数字,如总数,平均值等。