Skip to content
Related Articles

Related Articles

Extract all integers from the given string in Java

View Discussion
Improve Article
Save Article
  • Difficulty Level : Medium
  • Last Updated : 01 Aug, 2022
View Discussion
Improve Article
Save Article

Given a string str consisting of digits, alphabets, and special characters. The task is to extract all the integers from the given string.

Examples:

Input: str = "geeksforgeeks A-118, Sector-136, Uttar Pradesh-201305" 
Output: 118 136 201305 

Input: str = " 1abc35de 99fgh, dd11" 
Output: 1 35 99 11

Approach 1:

  • Replace all the non-digit characters with spaces (” “).
  • Now replace every consecutive group of spaces with a single space.
  • Eliminate the leading and the trailing spaces (if any) and the final string will only contain the required integers.

Below is the implementation of the above approach: 

Java




// Java implementation of the approach
public class GFG {
 
    // Function to return the modified string
    static String extractInt(String str)
    {
        // Replacing every non-digit number
        // with a space(" ")
        str = str.replaceAll("[^\\d] & quot;, "
                             ");
 
        // Remove extra spaces from the beginning
        // and the ending of the string
        str = str.trim();
 
        // Replace all the consecutive white
        // spaces with a single space
        str = str.replaceAll(" + ", "
                             ");
 
        if (str.equals(" "))
            return "
        -1 & quot;
        ;
 
        return str;
    }
 
    // Driver code
    public static void main(String[] args)
    {
        String str = "
        avbkjd1122klj4 543 af& quot;
        ;
        System.out.print(extractInt(str));
    }
}

Output

 1122 4 543 

Approach 2:

Java




// Java implementation of the approach
public class GFG {
 
    // Function to return the modified string
    static String extractInt(String str)
    {
        // Replacing every non-digit number
        // with a space(" ")
        str = str.replaceAll("[^0-9]", " "); // regular expression
 
        // Replace all the consecutive white
        // spaces with a single space
        str = str.replaceAll(" +", " ");
 
        if (str.equals(""))
            return "-1";
 
        return str;
    }
 
    // Driver code
    public static void main(String[] args)
    {
        String str = "avbkjd1122klj4 543 af";
        System.out.print(extractInt(str));
    }
}

Output

 1122 4 543 

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!