カテゴリ: Java 更新日: 2026/03/03

JavaのNumberFormatException完全解説!初心者向けにjava.langパッケージの基礎を学ぼう

NumberFormatExceptionクラス
NumberFormatExceptionクラス

先生と生徒の会話形式で理解しよう

生徒

「JavaのエラーでNumberFormatExceptionって出たんですけど、どういう意味なんですか?」

先生

「それは、Javaのjava.langパッケージに含まれている例外クラスのひとつです。数値に変換できない文字列を扱ったときに発生します。」

生徒

「なるほど!でも、具体的にどんなときに起きるんですか?」

先生

「それでは、初心者でもわかるように、実際の使い方やエラーの出方を見ながら学んでいきましょう。」

1. java.langパッケージとは?

「1. java.langパッケージとは?」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

1. java.langパッケージとは?
1. java.langパッケージとは?

Javaのjava.langパッケージは、プログラムを書くときに必ず使う基本的なクラスやインターフェースを集めたとても重要な場所です。例えば、StringクラスやMathクラス、Integerクラスなど、日常的に利用するクラスはすべてこのパッケージに含まれています。特別にimportを書かなくても自動的に読み込まれるため、初心者でもすぐに使うことができます。

プログラムの中でよく見るSystem.out.printlnも、このjava.langパッケージに含まれるクラスを通じて動いているのです。

2. NumberFormatExceptionとは?

2. NumberFormatExceptionとは?
2. NumberFormatExceptionとは?

NumberFormatExceptionは、java.langパッケージに含まれる例外クラスで、数値の変換に失敗したときに発生します。たとえば、文字列を数値に変換するときに、その文字列が数値として解釈できない場合にエラーが投げられます。

具体的には、Integer.parseIntDouble.parseDoubleといったメソッドで、数字以外の文字が含まれているときに発生します。

3. NumberFormatExceptionの発生例

3. NumberFormatExceptionの発生例
3. NumberFormatExceptionの発生例

次のサンプルコードを見てみましょう。


public class NumberFormatExample {
    public static void main(String[] args) {
        String text = "abc123";
        int number = Integer.parseInt(text);
        System.out.println(number);
    }
}

この場合、"abc123"は数値に変換できないため、実行するとNumberFormatExceptionが発生します。


Exception in thread "main" java.lang.NumberFormatException: For input string: "abc123"
    at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
    at java.base/java.lang.Integer.parseInt(Integer.java:668)
    at java.base/java.lang.Integer.parseInt(Integer.java:786)
    at NumberFormatExample.main(NumberFormatExample.java:4)

4. よくあるエラーの原因

「4. よくあるエラーの原因」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

4. よくあるエラーの原因
4. よくあるエラーの原因

NumberFormatExceptionは初心者がつまずきやすい例外です。主な原因は以下のようなものがあります。

  • 数字以外の文字が含まれている(例:「123a」など)
  • 空文字列を変換しようとした(例:「""」)
  • 小数点を含む文字列を整数に変換しようとした(例:「3.14」をInteger.parseIntで扱う場合)
  • 数値が大きすぎて扱えない(例:「9999999999999999999」をintに変換)

5. 例外を回避する方法

5. 例外を回避する方法
5. 例外を回避する方法

NumberFormatExceptionを回避するためには、入力される文字列が数値かどうかを事前にチェックするのが大切です。例えば、正規表現やCharacter.isDigitを使って確認できます。


public class SafeParseExample {
    public static void main(String[] args) {
        String text = "123";
        if (text.matches("\\\\d+")) {
            int number = Integer.parseInt(text);
            System.out.println("変換成功: " + number);
        } else {
            System.out.println("数値ではありません");
        }
    }
}

変換成功: 123

6. try-catchで安全に処理する

6. try-catchで安全に処理する
6. try-catchで安全に処理する

Javaでは例外をキャッチして安全に処理することもできます。入力が数値でなくてもプログラムが止まらないように工夫しましょう。


public class TryCatchExample {
    public static void main(String[] args) {
        String text = "hello";
        try {
            int number = Integer.parseInt(text);
            System.out.println(number);
        } catch (NumberFormatException e) {
            System.out.println("エラー: 数値に変換できません");
        }
    }
}

エラー: 数値に変換できません

7. NumberFormatExceptionと実践的な利用場面

「7. NumberFormatExceptionと実践的な利用場面」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

7. NumberFormatExceptionと実践的な利用場面
7. NumberFormatExceptionと実践的な利用場面

実際の開発では、ユーザーが入力したデータを数値に変換するときにNumberFormatExceptionが頻繁に起こります。例えば、Webアプリケーションのフォーム入力やファイルからの読み取り処理などです。特に、外部から与えられる文字列は必ず安全かどうかをチェックする必要があります。

初心者のうちは、例外が出ても焦らず、どの部分で文字列を数値に変換しているのかを確認すれば解決に近づけます。

8. 理解を深めるためのポイント

8. 理解を深めるためのポイント
8. 理解を深めるためのポイント

NumberFormatExceptionは、java.langパッケージに含まれる重要な例外クラスであり、文字列から数値への変換が失敗したときに発生します。回避するには、入力をチェックする、またはtry-catchを使うことが効果的です。Java初心者は、例外の仕組みを学ぶ上で最初に出会いやすいエラーなので、しっかりと理解しておくことが大切です。

カテゴリの一覧へ
新着記事
New1
Java
JavaのCollectionsクラスを完全ガイド!初心者でもわかる便利なユーティリティ
新規投稿
New2
Java
JavaのBufferedOutputStreamクラスの使い方を完全ガイド!初心者でもわかる効率的なファイル書き込み
更新記事
New3
Java
Javaのsealedクラス(シール・クラス)とは?継承を制御する新機能をやさしく解説
更新記事
New4
Spring
JavaのSpringで使う@Pastアノテーションを徹底解説!初心者向け日付バリデーション入門
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.3
Java&Spring記事人気No3
Java
JavaのIOExceptionクラス徹底解説!初心者向けファイル入出力エラー対策ガイド
No.4
Java&Spring記事人気No4
Spring
Spring BootのMultipartFile入門:ファイルアップロード・ダウンロードの実装方法と制限設定
No.5
Java&Spring記事人気No5
Java
JavaのRuntimeExceptionを完全解説!初心者でもわかるjava.langパッケージの基礎
No.6
Java&Spring記事人気No6
Java
Java開発環境「Eclipse(Pleiades)」のインストール方法とメリットを初心者向けに解説
No.7
Java&Spring記事人気No7
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門
No.8
Java&Spring記事人気No8
Servlet
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本