Open In App

Check if a given string is a valid number (Integer or Floating Point) in Java

Improve
Improve
Like Article
Like
Save
Share
Report

In the article Check if a given string is a valid number, we have discussed general approach to check whether a string is a valid number or not. In Java we can use Wrapper classes parse() methods along with try-catch blocks to check for a number.

For integer number

Integer class provides a static method parseInt() which will throw NumberFormatException if the String does not contain a parsable int. We will catch this exception using catch block and thus confirm that given string is not a valid integer number.Below is the java program to demonstrate the same. 

Implementation:

Java




// Java program to check whether given string
// is a valid integer number
 
class GFG {
    public static void main(String[] args)
    {
        String input1 = "abc";
        String input2 = "1234";
 
        try {
            // checking valid integer using parseInt()
            // method
            Integer.parseInt(input1);
            System.out.println(
                input1 + " is a valid integer number");
        }
        catch (NumberFormatException e) {
            System.out.println(
                input1 + " is not a valid integer number");
        }
 
        try {
            // checking valid integer using parseInt()
            // method
            Integer.parseInt(input2);
            System.out.println(
                input2 + " is a valid integer number");
        }
        catch (NumberFormatException e) {
            System.out.println(
                input2 + " is not a valid integer number");
        }
    }
}


Output

abc is not a valid integer number
1234 is a valid integer number

The time complexity of this program is O(1), because it performs a fixed set of operations that do not depend on the input size. 

The space complexity of the program is also O(1), because it only uses a fixed amount of memory to store the two String variables input1 and input2.

For float number

Float class provides a static method parseFloat() which will throw NumberFormatException if the String does not contain a parsable float. We will catch this exception using catch block and thus confirm that given string is not a valid float number.If string is null, this method will throw NullPointerException.Below is the java program to demonstrate the same. 

Implementation:

Java




// Java program to check whether given string
// is a valid float number.
 
class GFG {
    public static void main(String[] args)
    {
        String input1 = "10e5.4";
        String input2 = "2e10";
 
        try {
            // checking valid float using parseInt() method
            Float.parseFloat(input1);
            System.out.println(
                input1 + " is a valid float number");
        }
        catch (NumberFormatException e) {
            System.out.println(
                input1 + " is not a valid float number");
        }
 
        try {
            // checking valid float using parseInt() method
            Float.parseFloat(input2);
            System.out.println(
                input2 + " is a valid float number");
        }
        catch (NumberFormatException e) {
            System.out.println(
                input2 + " is not a valid float number");
        }
    }
}


Output

10e5.4 is not a valid float number
2e10 is a valid float number

The time complexity of this program is O(1) because it performs a constant number of operations to check each input string. 

The space complexity is also O(1) because it uses a constant amount of memory to store the input strings and the exception objects.

For big numbers

We can use BigInteger and BigDecimal class constructors for large numbers.Below is the java program to demonstrate the same. 

Implementation:

Java




// Java program to check whether given string
// is a valid number.
 
import java.math.BigDecimal;
import java.math.BigInteger;
 
class GFG {
    public static void main(String[] args)
    {
        String input1
            = "1231456416541214651356151564651954156";
        String input2 = "105612656501606510651e655.4";
        String input3 = "2e102225";
 
        try {
            // checking valid integer number using
            // BigInteger constructor
            new BigInteger(input1);
            System.out.println(
                input1 + " is a valid integer number");
        }
        catch (NumberFormatException e) {
            System.out.println(
                input1 + " is not a valid integer number");
        }
 
        try {
            // checking valid float number using BigDecimal
            // constructor
            new BigDecimal(input2);
            System.out.println(
                input2 + " is a valid float number");
        }
        catch (NumberFormatException e) {
            System.out.println(
                input2 + " is not a valid float number");
        }
 
        try {
            // checking valid float number using BigDecimal
            // constructor
            new BigDecimal(input3);
            System.out.println(
                input3 + " is a valid float number");
        }
        catch (NumberFormatException e) {
            System.out.println(
                input3 + " is not a valid float number");
        }
    }
}


Output

1231456416541214651356151564651954156 is a valid integer number
105612656501606510651e655.4 is not a valid float number
2e102225 is a valid float number


Last Updated : 03 May, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads