Mi az a NumberFormatException a Java-ban?

"A NumberFormatException egy nem numerikus karakterlánc számmá alakításakor jelenik meg."
Egyszerűen fogalmazva, ha egy karakterlánc nem csak numerikus adatokat tartalmaz , és megpróbálja számmá alakítani, akkor ezzel a kivétellel találkozik. Ez másképp is értelmezhető. A kivétel jelzőként szolgál, ha a String számmá konvertálása nem lehetséges. A szám lehet egész szám, lebegőpontos vagy decimális, az Ön igényei szerint. Például, ha a bemeneti karakterlánc minden betűt, alfanumerikus karaktert vagy speciális karaktert tartalmaz, és megpróbálja megkísérelni a karakterláncból egész számra való átalakítást , akkor a rendszer egy NumberFormatException kivételt dob.

Példa

Ennek megértéséhez nézzünk egy egyszerű példát.

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());
		}
	}
}

Kimenet

Integer.pareseInt(2550) = 2550 NumberFormatException kidobva! Bemeneti karakterlánchoz: "255.0" NumberFormatException dobva! Bemeneti karakterlánchoz: "Wed Aug 11 08:18:21 PKT 2021" NumberFormatException dobva! Bemeneti karakterlánchoz: "1 2 3" NumberFormatException dobva! Bemeneti karakterlánchoz: "Lubaina Khan"

Következtetés

Reméljük, megérti, miért jelenik meg a NumberFormatException a Java-ban. Ha megértette a kiváltó okot, mindig azonosíthatja az okot, és orvosolni tudja. Ha még mindig nem vagy tisztában ezzel a koncepcióval, kövess el több hibát, és megtudod, miért és hogyan lehet ezt a problémát. Addig fejlődj és tanulj tovább.