異常信息: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) 時出的錯,知道了錯誤地方就能夠相應的解決了