Javaで入力値を10進数から16進数に変換するプログラムを作成しています。

Javaで入力値を10進数から16進数に変換するプログラムを作成しています。 Stringの変数に値を入力後、intに変換し、16進数に変換させたいのですが、数値以外が入力された場合とintの範囲外の数値が入力された場合にはエラー表示させたいです。 そもそも上記2つのエラーを区別してエラー内容を表示することは可能ですか? 可能であればどのように書けばよいか教えてください。 エラー表示は、try catchで表示させようと思ってます。

C言語関連13閲覧xmlns="http://www.w3.org/2000/svg">50

ベストアンサー

0

Integer.parseInt() https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Integer.html#parseInt-java.lang.String-int- 整数範囲外場合と基数で使えない文字が含まれる場合は同じ例外となって区別できません。簡単に行うなら、範囲外文字の判定を別途行えばよいです。 try {     if(s.matches("[0-9]+") == false) {         // invalid character     } else {         r = Integer.parseInt(s, 10);         // OK     } } catch (NumberFormatException e) {     // out of range } この例では負数に対応してないので必要なら '-' で始まる文字列を受理する正規表現にしてください。