有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JAVA尝试分析常规有效整数时出现lang.NumberFormatException

这是怎么回事

这是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),也会发生同样的情况

这怎么可能


共 (3) 个答案

  1. # 1 楼答案

    这个数字对于整数来说太大了。不过,长时间使用肯定会管用。试着这样做:

      String checkSum = "2367122119";
      long ipAddressAsInt = Long.parseLong(checkSum.trim());
      System.out.println(ipAddressAsInt);
    
  2. # 2 楼答案

    对于int来说,这个数字太大了:

    @Test
    public void testMaxInt() {
        System.out.println(Integer.MAX_VALUE);   
    
        System.out.println(Integer.MIN_VALUE);   
    
      }
    

    2147483647

    -2147483648

  3. # 3 楼答案

    该数字超出了int容器的大小。可以使用long,但也必须将变量声明为long:

    long ipAddressAsInt = Long.parseLong(checkSum.trim());
    

    这在理论上应该行得通