Remove all characters from string except alphabets in Java
Understanding String Filtering
Filtering a string means removing all non-alphabetic characters from it.
We will explore three different methods to achieve this in Java.
Method 1: Using a Loop
This method iterates through the string and keeps only alphabetic characters.
public class RemoveNonAlpha { public static String removeNonAlpha(String str) { StringBuilder result = new StringBuilder(); for (char c : str.toCharArray()) { if (Character.isLetter(c)) { result.append(c); } } return result.toString(); } public static void main(String[] args) { String str = "H3ll0 W@rld!"; System.out.println("Filtered String: " + removeNonAlpha(str)); } }
Output: HllWrld
Method 2: Using Recursion
This method filters the string recursively.
public class RemoveNonAlphaRecursive { public static String filterRecursive(String str, int index) { if (index == str.length()) return ""; char current = str.charAt(index); return (Character.isLetter(current) ? current : "") + filterRecursive(str, index + 1); } public static void main(String[] args) { String str = "C0d!ng123"; System.out.println("Filtered String: " + filterRecursive(str, 0)); } }
Output: Cdng
Method 3: Using Regular Expressions
This method uses regex to replace all non-alphabetic characters.
public class RemoveNonAlphaRegex { public static String removeWithRegex(String str) { return str.replaceAll("[^a-zA-Z]", ""); } public static void main(String[] args) { String str = "P@r0gr@mm1ng"; System.out.println("Filtered String: " + removeWithRegex(str)); } }
Output: Prgrmmng