java.lang.NumberFormatException 尝试解析常规有效整数时
java.lang.NumberFormatException when trying to parse a regular valid integer
这是怎么回事?
这是checkSum = "2367122119"
的值。我想将这个数字解析为这样的整数值:
int ipAddressAsInt = Integer.parseInt(checkSum.trim());
结果我得到以下异常:
java.lang.NumberFormatException: For input string: "2367122119"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:583)
at java.lang.Integer.parseInt(Integer.java:615)
at com.example.servlets.RDServlet.doPost(RDServlet.java:40)
...
此外,如果我尝试 Long.parseLong(checkSum)
,也会发生同样的情况。
这怎么可能?
这个数字对于 int
来说太大了:
@Test
public void testMaxInt() {
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
}
2147483647
-2147483648
这个数字对于整数来说太大了。使用 Long 它应该绝对有效。像这样尝试:
String checkSum = "2367122119";
long ipAddressAsInt = Long.parseLong(checkSum.trim());
System.out.println(ipAddressAsInt);
该数字超出了 int 容器的大小。您可以使用 long,但您还必须将变量声明为 long:
long ipAddressAsInt = Long.parseLong(checkSum.trim());
这在理论上应该可行....
这是怎么回事?
这是checkSum = "2367122119"
的值。我想将这个数字解析为这样的整数值:
int ipAddressAsInt = Integer.parseInt(checkSum.trim());
结果我得到以下异常:
java.lang.NumberFormatException: For input string: "2367122119"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:583)
at java.lang.Integer.parseInt(Integer.java:615)
at com.example.servlets.RDServlet.doPost(RDServlet.java:40)
...
此外,如果我尝试 Long.parseLong(checkSum)
,也会发生同样的情况。
这怎么可能?
这个数字对于 int
来说太大了:
@Test
public void testMaxInt() {
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
}
2147483647
-2147483648
这个数字对于整数来说太大了。使用 Long 它应该绝对有效。像这样尝试:
String checkSum = "2367122119";
long ipAddressAsInt = Long.parseLong(checkSum.trim());
System.out.println(ipAddressAsInt);
该数字超出了 int 容器的大小。您可以使用 long,但您还必须将变量声明为 long:
long ipAddressAsInt = Long.parseLong(checkSum.trim());
这在理论上应该可行....