java.lang.NumberFormatException


異常信息:

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

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

  at java.lang.Integer.parseInt(Integer.java:458)    

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

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

 

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

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

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

 

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) 時出的錯,知道了錯誤地方就可以相應的解決了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM