0
0
JavaDebug / FixBeginner · 4 min read

How to Fix NumberFormatException in Java Quickly and Easily

A NumberFormatException in Java happens when you try to convert a string that is not a valid number into a numeric type. To fix it, ensure the string contains only digits (and optionally a sign or decimal point) before parsing it with methods like Integer.parseInt() or Double.parseDouble().
🔍

Why This Happens

This error occurs when Java tries to convert a string into a number but the string contains characters that are not valid digits. For example, letters, spaces, or symbols in the string cause the conversion to fail.

java
public class Main {
    public static void main(String[] args) {
        String input = "123abc";
        int number = Integer.parseInt(input); // This will cause NumberFormatException
        System.out.println(number);
    }
}
Output
Exception in thread "main" java.lang.NumberFormatException: For input string: "123abc" 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 Main.main(Main.java:4)
🔧

The Fix

To fix this error, make sure the string contains only valid numeric characters before parsing. You can also handle the exception to avoid program crashes.

java
public class Main {
    public static void main(String[] args) {
        String input = "123"; // Valid numeric string
        try {
            int number = Integer.parseInt(input);
            System.out.println("Parsed number: " + number);
        } catch (NumberFormatException e) {
            System.out.println("Invalid number format: " + input);
        }
    }
}
Output
Parsed number: 123
🛡️

Prevention

To avoid NumberFormatException in the future, always validate or sanitize input strings before parsing. Use regular expressions or helper methods to check if the string is numeric. Also, handle exceptions gracefully to keep your program stable.

  • Use input.matches("\\d+") to check if a string contains only digits.
  • Use try-catch blocks around parsing code.
  • Trim strings to remove extra spaces.
⚠️

Related Errors

Other errors similar to NumberFormatException include:

  • InputMismatchException: Happens when using Scanner to read numbers but input is not numeric.
  • NullPointerException: Occurs if the string to parse is null.
  • ArithmeticException: Happens during numeric operations like division by zero.

Always validate inputs and handle exceptions to avoid these errors.

Key Takeaways

NumberFormatException happens when parsing invalid numeric strings.
Always validate strings before converting to numbers.
Use try-catch blocks to handle parsing errors safely.
Trim and sanitize input to avoid hidden invalid characters.
Check for null strings before parsing to prevent NullPointerException.