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