1. ホーム
  2. java

[解決済み] java.lang.NumberFormatException を防ぐにはどうしたらよいですか。入力文字列に対して "N/A "を防ぐには?

2022-03-03 21:34:54

質問

私のコードを実行している間 NumberFormatException :

java.lang.NumberFormatException: For input string: "N/A"
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.valueOf(Unknown Source)
    at java.util.TreeMap.compare(Unknown Source)
    at java.util.TreeMap.put(Unknown Source)
    at java.util.TreeSet.add(Unknown Source)`

この例外を発生させないようにするにはどうしたらよいですか?

解決方法は?

"N/A" が整数でない。を投げなければなりません。 NumberFormatException をパースして整数にすることができます。

パースする前にチェックするか、処理する Exception を適切に設定する必要があります。

  1. 例外処理

    try{
        int i = Integer.parseInt(input);
    } catch(NumberFormatException ex){ // handle your exception
        ...
    }
    
    

または 整数のパターンマッチ -

String input=...;
String pattern ="-?\\d+";
if(input.matches("-?\\d+")){ // any positive or negetive integer or not!
 ...
}