Open In App

Extract all integers from the given string in Java

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

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 

Time Complexity: O(n), Here n is the length of the string.

Auxiliary Space: O(1), As constant extra space is used.

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 

Time Complexity: O(n), Here n is the length of the string.
Auxiliary Space: O(1), As constant extra space is used.



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