Javaちょこっとリファレンス ブログ

Java開発時にぜひご利用ください。

Java基本

[Java例外] java.lang.NumberFormatException

投稿日:

以下のように表示されます。

(例外表示)
Exception in thread "xxx" java.lang.NumberFormatException: For input string: "xxx"

原因

  • 数値に変換しようとした値が、数値に変換できない値であったため。
    (OKな文字列の例)
     "123"、"-123"、"1.23"、"-1.23"、"0"、"000"、"1.23d"、"1.23f"
    (NGな文字列の例)
     "abc"、""、null、""、"1.23x"

小数値はInteger.parseIntだとエラーになります。
 Double.parseDoubleやFloat.parseFloatをご使用ください。

数値の最後に付く英字は数値リテラルの場合のみOKです。
[Java] 数値リテラルで型を明示的に指定する

対処方法

  • 数値に変換しようとした値が、適切な値であるか確認する

発生例

以下のようなパターンでエラーが発生します。

例)文字列"abc"をint型に変換する

コマンドプロンプト
C:\>java Sample Exception in thread "main" java.lang.NumberFormatException: For input string: "abc" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at java.lang.Integer.parseInt(Integer.java:615) at Sample.main(Sample.java:4)

"abc"は数値に変換できない値なのでエラーが発生します。

備考


スポンサーリンク

スポンサーリンク

-Java基本
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

[Java共通部品] 日付文字列(YYYYMMDD)をDate型に変換する

日付文字列(YYYYMMDD)をDate型に変換する共通関数です。 サンプルメソッド 例)日付文字列 ...

[Java] 文字列を指定した文字で分割する(.split)

文字列を指定した文字で分割して値を取得するには、.split()を使用します。 CSV形式の文字列か ...

[Java] Map型オブジェクトから指定したキーが存在するかどうか判定する(.containsKey)

Map型オブジェクトから指定したキーが存在するかどうか判定するには、.containsKey()を使 ...

[Java] 変数が配列かどうか判定する(Class.isArray)

オブジェクトが配列かどうか判定するには、Class.isArrayを使用します。 サンプルソース 例 ...

[Java] 標準入力からの値を受け取る(Scanner)

Javaの標準入力からの値を受け取るには、java.util.Scanner を使用します。 サンプ ...