CodeGym /Java blogg /Slumpmässig /NumberFormatException i Java
John Squirrels
Nivå
San Francisco

NumberFormatException i Java

Publicerad i gruppen

Vad är NumberFormatException i Java?

"NummerFormatUndantaget kastas vid omvandlingen av en icke-numerisk sträng till ett tal."
Enkelt uttryckt, om en sträng inte bara innehåller numeriska data och du försöker konvertera den till ett tal, kommer du att stöta på detta undantag. Detta kan också tolkas på annat sätt. Undantaget används som en indikator om konvertering av String till ett tal inte är möjlig. Numret kan vara ett heltal, flytande eller decimal enligt dina krav. Till exempel, om inmatningssträngen innehåller alla bokstäver, alfanumeriska tecken eller specialtecken och du försöker att konvertera från sträng till heltal, kommer ett NumberFormatException att visas.

Exempel

Låt oss titta på ett enkelt exempel för att förstå detta.

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

Produktion

Integer.pareseInt(2550) = 2550 NumberFormatException kastat! För inmatningssträng: "255.0" NumberFormatException kastat! För inmatningssträng: "Wed Aug 11 08:18:21 PKT 2021" NumberFormatException kastat! För inmatningssträng: "1 2 3" NumberFormatException kastat! För inmatningssträng: "Lubaina Khan"

Slutsats

Vi hoppas att du förstår varför NumberFormatException uppstår i Java. Om du har förstått grundorsaken kan du alltid identifiera orsaken och åtgärda den. Om du fortfarande inte är tydlig med det här konceptet, gör fler misstag och du kommer att lära dig varför och hur detta problem är. Tills dess fortsätt växa och fortsätt lära dig.
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION