我正在尝试使用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)
答案 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来说足够了,你可以长。
另请注意,建议您不要将电话号码作为整数使用,而是按原样使用(字符串)。
因为我们通常需要算术运算时需要的数字,如总数,平均值等。