Open In App

Remove all non-alphabetical characters of a String in Java

Given a string str, consisting of non-alphabetical characters. The task is to remove all those non-alphabetical characters of str and print the words on a new line. 

Examples:



Input: str = “Hello, how are you ?” 
Output: Hello how are you comma(, ), white space and question mark (?) are removed and there are total 4 words in string s. Each token is printed in the same order in which it appears in string s. 

Input: “Azad is a good boy, isn’ t he ?” 
Output: Azad is a good boy isn t he



Approach: 

Non-alphabetic characters are basically any character that is not a number or letter. It can be English alphabetic letters, blank spaces, exclamation points (!), commas (, ), question marks (?), periods (.), underscores (_), apostrophes (‘), and at symbols (@). The approach is to use Java String.split method to split the String, s into an array of substrings. Then print each n words on a new line in the same order as it appears in String s. 

Below is the implementation of the above approach: 




// Java program to split all
// non-alphabetical characters
import java.util.Scanner;
 
public class Main {
 
    // Function to trim the non-alphabetical characters
    static void printwords(String str)
    {
 
        // eliminate leading and trailing spaces
        str = str.trim();
 
        // split all non-alphabetic characters
        String delims = "\\W+"; // split any non word
        String[] tokens = str.split(delims);
 
        // print the tokens
        for (String item : tokens) {
 
            System.out.println(item + " ");
        }
    }
 
    public static void main(String[] args)
    {
 
        String str = "Hello, how are you ?";
        printwords(str);
    }
}

Output
Hello 
how 
are 
you 

Time Complexity: O(N)

New Approach:

Below is the implementation of the above approach: 




import java.util.Scanner;
 
public class Main {
 
    // Function to remove non-alphabetic characters
    static String removeNonAlphabetic(String str) {
 
        // Use regular expression to match all non-alphabetic characters and replace with empty string
        String result = str.replaceAll("[^a-zA-Z]", "");
 
        return result; // Return the resulting string
    }
 
    public static void main(String[] args) {
 
        String str = "Hello, how are you ?"; // Initialize a sample string
        String result = removeNonAlphabetic(str); // Call the removeNonAlphabetic function with input string
        System.out.println(result); // Print the resulting string with non-alphabetic characters removed
    }
}

Output
Hellohowareyou

In this approach, we use the replaceAll() method to replace all non-alphabetic characters with an empty string. The regular expression “[^a-zA-Z]” matches any character that is not an English alphabetical letter (both uppercase and lowercase).

The resulting string only contains alphabetic characters.

Time Complexity:

Auxiliary Space:


Article Tags :