将字符串解析为 int 时出错 -java.lang.NumberFormatExceptiont

error parsing string to int -java.lang.NumberFormatExceptiont

我正在将字符串解析为整数,但出现以下错误:

Exception in thread "main" java.lang.NumberFormatException: For input string: "9887666881"

代码

long accountNo=0;
if(accountNo_p!=null)
   accountNo=Integer.parseInt(accountNo_p);

能请教一下吗?

Java 的 int 大小为 32 位宽。 Java 格式的(有符号)32 位整数的最大值为 2,147,483,647。输入字符串是 9,887,666,881。输入大于 Java int 的最大值,因此它会抛出 NumberFormatException(因为您对 parseInt 使用 Integer 方法,不是解析 long).

的方法

解决方案包括使用较小的数字(如果这是一个随机测试用例,而不是真实数据),或使用 Java long(通过 Long.parseLong(accountNo_p))。