我正在创建一个 Android 应用程序,我正在从一个文本文件中读取一些坐标。
我正在使用 Integer.parseInt(xCoordinateStringFromFile)
将 X 坐标转换为整数,并以相同的方式转换为 Y 坐标。
当我运行该应用程序时,我在该行收到错误,如下所示:
BridgeData data = new BridgeData(
elements[0],
elements[1],
Integer.parseInt(elements[2]),
Integer.parseInt(elements[3]),
Integer.parseInt(elements[4]),
new GeoPos(Integer.parseInt(elements[5].split(",")[0]), Integer.parseInt(elements[5].split(",")[1])),
new GeoPos(Integer.parseInt(elements[6].split(",")[0]), Integer.parseInt(elements[6].split(",")[1])),
Integer.parseInt(elements[7]),
Integer.parseInt(elements[8])
);
变量 elements
是一个字符串数组,通过在每个 ;
上拆分当前行创建。
“主要”错误是:
java.lang.NumberFormatException: Invalid int: "3546504756"
我想知道这是什么意思,我该如何解决。
最佳答案
错误只是意味着 java 无法将您在调用 Integer.pasrseInt
时尝试使用的字符串转换为该数字超出整数范围。
您应该使用 Long.parseLong
作为 3546504756 数字不在 range 中一个整数。
确保您的 BridgeData 构造函数接受 long 作为参数而不是整数。
关于java.lang.NumberFormatException : Invalid int: "3546504756", 这个错误是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27331336/