【Java】Stringをintに変換する場合にエラーが出たときの対処方法

Javaで "String を int に変換できません" というエラーが出るとき、主に以下のような原因があります。それぞれの原因と対処法を説明します

✅ よくある原因と解決法

1. 数値でない文字列を Integer.parseInt() に渡している

❌ エラー例:

String str = "abc";
int num = Integer.parseInt(str); // NumberFormatException

✅ 解決方法:

 
String str = "123";
int num = Integer.parseInt(str); // OK

ポイント:

str の値が "123" のような 純粋な数字の文字列 でなければ、NumberFormatException が発生します。

2. 空文字列や null を変換しようとしている

❌ エラー例:

String str = "";
int num = Integer.parseInt(str); // NumberFormatException

✅ 解決方法:

if (str != null && !str.isEmpty()) {
    int num = Integer.parseInt(str);
}

3. 全角数字が含まれている

❌ エラー例:

String str = "123"; // 全角数字
int num = Integer.parseInt(str); // NumberFormatException

✅ 解決方法:

String str = "123";
str = str.replaceAll("[0-9]", c -> String.valueOf(c.charAt(0) - '0' + '0'));
int num = Integer.parseInt(str); // OK

🔐 変換に失敗しないようにするための安全なコード例

public static int safeParseInt(String str) {
    try {
        return Integer.parseInt(str);
    } catch (NumberFormatException e) {
        System.out.println("変換に失敗しました: " + str);
        return 0; // または適切なデフォルト値
    }
}

🧪 まとめ

原因 対策
数字以外の文字が含まれる 入力を検証する
空文字列や null null チェックと空チェックをする
全角数字 半角に変換する
ユーザー入力 try-catch で例外処理を行う

コメントを残す

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

PAGE TOP