java.lang.NumberFormatException

異常信息:java

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

  at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)    orm

  at java.lang.Integer.parseInt(Integer.java:458)    字符串

  at java.lang.Integer.parseInt(Integer.java:499)    input

  at com.geelou.test.ErrTest.main(ErrTest.java:6)string

 

2.java.lang.NumberFormatException: For input string: ""  io

  java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)  thread

  java.lang.Long.parseLong(Long.java:424)  java.lang.Long.parseLong(Long.java:461)test

 

3.java.lang.NumberFormatException: null  方法

  java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)

    java.lang.Long.parseLong(Long.java:424)  java.lang.Long.parseLong(Long.java:461)

 

錯誤關鍵字 java.lang.NumberFormatException 這句話明確告訴了咱們是數字格式異常

 

錯誤緣由:

1.中的問題想將String轉換爲int類型時出錯,緣由:"1 "中存在空格,字符串中存在空格不能直接轉換爲數字。

2.中的問題爲將字符串轉換爲Long類型是出錯,緣由:是字符串爲""(空串)。

3.中問題爲將字符串轉換爲Long類型是時出錯,緣由爲字符串爲null

 

解決方法:

1.在轉換以前去空格,Integer.parseInt(numString.trim()) ;

2.在轉換以前判空串:if(s!=""){轉換}

3.在轉換以前判空:if(s!=null){轉換}

 

拓展:

出現這個問題的緣由通常爲數據格式轉換的問題。

 

看下面錯誤堆棧:

就知道是在轉換什麼類型的數據時出現了問題。

具體是哪一個類的哪一個方法的哪一行的錯誤了,找本身寫的第一個類com.geelou.test.ErrTest.main(ErrTest.java:6) 原來是  com.geelou.test.ErrTest 類的main方法裏的第6行出錯了。  

這樣就定位到了System.out.println(Integer.parseInt(numString));

具體是 Integer.parseInt(numString) 時出的錯,知道了錯誤地方就能夠相應的解決了

相關文章
相關標籤/搜索