How to check if string contains only digits in Java

Given a string str, the task is to write a Java program to check whether a string contains only digits or not. If so, then print true, otherwise false.
Examples:

Input: str = “1234”
Output: true
Explanation:
The given string contains only digits so that output is true.

Input: str = “GeeksforGeeks2020”
Output: false
Explanation:
The given string contains alphabet character and digits so that output is false.

  1. Using Traversal: The idea is to traverse each character in the string and check if the character of the string contains only digits from 0 to 9. If all the character of the string contains only digits then return true, otherwise, return false.

    Below is the implementation of the above approach:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // Java program for the above approach
    // contains only digits
    class GFG {
      
        // Function to check if a string
        // contains only digits
        public static boolean
        onlyDigits(String str, int n)
        {
            // Traverse the string from
            // start to end
            for (int i = 0; i < n; i++) {
      
                // Check if character is
                // digit from 0-9
                // then return true
                // else false
                if (str.charAt(i) >= '0'
                    && str.charAt(i) <= '9') {
                    return true;
                }
                else {
                    return false;
                }
            }
            return false;
        }
      
        // Driver Code
        public static void main(String args[])
        {
            // Given string str
            String str = "1234";
            int len = str.length();
      
            // Function Call
            System.out.println(onlyDigits(str, len));
        }
    }

    chevron_right

    
    

    Output:



    true
    

    Time Complexity: O(N), where N is the length of the given string.
    Auxiliary Space: O(1)

  2. Using Character.isDigit(char ch): The idea is to iterate over each character of the string and check whether the specified character is a digit or not using Character.isDigit(char ch). If the character is digit then return true, else return false.

    Below is the implementation of the above approach:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // Java program to check if a string
    // contains only digits
    class GFG {
      
        // Function to check if a string
        // contains only digits
        public static boolean
        onlyDigits(String str, int n)
        {
      
            // Traverse the string from
            // start to end
            for (int i = 0; i < n; i++) {
      
                // Check if the sepecified
                // character is a digit then
                // return true,
                // else return false
                if (Character.isDigit(str.charAt(i))) {
                    return true;
                }
                else {
                    return false;
                }
            }
            return false;
        }
      
        // Driver Code
        public static void main(String args[])
        {
            // Given string str
            String str = "1234";
            int len = str.length();
      
            // Function Call
            System.out.println(onlyDigits(str, len));
        }
    }

    chevron_right

    
    

    Output:

    true
    

    Time Complexity: O(N), where N is the length of the given string.
    Auxiliary Space: O(1)

  3. Using Regular Expression:

    1. Get the String.
    2. Create a Regular Expression to check string contains only digits as mentioned below:
      regex = "[0-9]+";
      
    3. Match the given string with Regular Expression. In Java, this can be done by using Pattern.matcher().
    4. Return true if the string matches with the given regular expression, else return false.

    Below is the implementation of the above approach:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // Java program to check if a string
    // contains only digits
    import java.util.regex.*;
    class GFG {
      
        // Function to validate URL
        // using regular expression
        public static boolean
        onlyDigits(String str)
        {
            // Regex to check string
            // contains only digits
            String regex = "[0-9]+";
      
            // Compile the ReGex
            Pattern p = Pattern.compile(regex);
      
            // If the string is empty
            // return false
            if (str == null) {
                return false;
            }
      
            // Find match between given string
            // and regular expression
            // using Pattern.matcher()
            Matcher m = p.matcher(str);
      
            // Return if the string
            // matched the ReGex
            return m.matches();
        }
      
        // Driver Code
        public static void main(String args[])
        {
            // Given string str
            String str = "1234";
      
            // Function Call
            System.out.println(onlyDigits(str));
        }
    }

    chevron_right

    
    

    Output:

    true
    

    Time Complexity: O(N), where N is the length of the given string.
    Auxiliary Space: O(1)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up

External Technical Content Reviewer at GeeksforGeeks

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.