CodeGym /Java Blog /ランダム /JavaのNumberFormatException
John Squirrels
レベル 41
San Francisco

JavaのNumberFormatException

ランダム グループに公開済み

JavaのNumberFormatExceptionとは何ですか?

「数値以外の文字列を数値に変換すると、NumberFormatException がスローされます。」
簡単に言えば、文字列が数値データのみを保持していない場合に、それを数値に変換しようとすると、この例外が発生します。これは別の方法で解釈することもできます。この例外は、文字列から数値への変換が不可能な場合のインジケータとして使用されます。数値は、要件に応じて整数、浮動小数点、または 10 進数にすることができます。たとえば、入力文字列にすべての文字、英数字、または特殊文字が含まれている場合に、文字列から整数への変換を試行すると、NumberFormatException がスローされます。

これを理解するために簡単な例を見てみましょう。

import java.util.Date;

public class NumberFormatExceptionTestDriver {

	public static void main(String[] args) {

		try {
			// a valid Integer number in the input String
			String inputString = "2550";
			System.out.println("Integer.pareseInt(" + inputString + ") = " + Integer.parseInt(inputString));
		} catch (NumberFormatException e) {
			// java.lang.NumberFormatException will be thrown if the  
			// input string can not be converted to a valid integer
			System.out.println("\nNumberFormatException thrown! " + e.getMessage());
		}

		try {
			// a floating number in the input String
			// use Float.parseFloat(inputString) to avoid this exception
			String inputString = "255.0"; 
			System.out.println("Integer.pareseInt(" + inputString + ") = " + Integer.parseInt(inputString));
		} catch (NumberFormatException e) {
			System.out.println("\nNumberFormatException thrown! " + e.getMessage());
		}

		try {
			Date day = new Date();
			// date containing alpha-numeric data in the input string
			String inputString = day.toString();
			System.out.println("Integer.pareseInt(" + inputString + ") = " + Integer.parseInt(inputString));
		} catch (NumberFormatException e) {
			System.out.println("\nNumberFormatException thrown! " + e.getMessage());
		}

		try {
			// numbers with spaces in the input string
			String inputString = "1 2 3";
			System.out.println("Integer.pareseInt(" + inputString + ") = " + Integer.parseInt(inputString));
		} catch (NumberFormatException e) {
			System.out.println("\nNumberFormatException thrown! " + e.getMessage());
		}

		try {
			// all letters in the input string
			String inputString = "Lubaina Khan";
			System.out.println("Integer.pareseInt(" + inputString + ") = " + Integer.parseInt(inputString));

		} catch (NumberFormatException e) {
			System.out.println("\nNumberFormatException thrown! " + e.getMessage());
		}
	}
}

出力

Integer.pareseInt(2550) = 2550 NumberFormatException がスローされました。入力文字列の場合: "255.0" NumberFormatException がスローされました。入力文字列の場合: "Wed Aug 11 08:18:21 PKT 2021" NumberFormatException がスローされました。入力文字列の場合: "1 2 3" NumberFormatException がスローされました。入力文字列:「Lubaina Khan」

結論

Java で NumberFormatException が発生する理由を理解できたと思います。根本原因を理解していれば、いつでもその理由を特定して修正することができます。この概念がまだよくわからない場合は、さらに間違いを犯してください。そうすれば、この問題の理由と方法がわかります。それまでは成長を続け、学び続けてください。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION