NumberFormatExceptionに悩まされました
NumberFormatExceptionとは
文字列(String型)を数値型(int型)に変換した際に発生します。
今回、解決できた方法
trim()
を使用するとエラーが解消されました。
なぜ発生したか
CSVファイルを読み込み、CSVファイルのデータをString型からint型に変換しようとした際に発生しまた。
以下のようなCSVファイルがあります。
1,だいこん,130 2,にんじん,90
String a = 130; String b = 90; として このような変数を作ると
int sum = Integer.parseInt(a) + Integer.parseInt(b);
結果
java.lang.NumberFormatException: For input string: " 130"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:)
エラー文をよく見ていなかった
初めはtry〜catchで解消しようとしていましたが、他に方法はないか検索に検索をしていました。
しかし、エラー文をよく見ると
For input string: " 130"
と書いてあり、" 130"に半角スペースが空いているのを発見。 その結果
int sum = Integer.parseInt(a.trim()) + Integer.parseInt(b.trim());
こうすると解決することができました。
答えはエラー文の中に潜んでいるものですね・・・ かなり時間食ってしまった・・・泣