Remove characters in a Java String

Here is a simple method (actually two) for removing multiple characters from a String:

/**
* Removes the specified characters from the supplied String.
*
* @param s the String to remove characters in.
* @param a the characters to remove from the supplied String.
* @return the String stripped from all the supplied characters.
*/
public static String removeChars(String s, char[] a) {
StringBuffer r = new StringBuffer();
for (int i = 0; i < s.length(); i ++) { if (!contains(s.charAt(i), a)) { r.append(s.charAt(i)); } } return r.toString(); } /** * Searches a char array for the specified character. * * @param c the char to find in the char array. * @param a the char array to search in. * @return true if the char is found in the char array, * false if not. */ public static boolean contains(char c, char[] a) { for (int i = 0; i < a.length; i++) { if (c == a[i]) { return true; } } return false; }


The above can be used like this to check if a String is a valid phone number:

/**
* Checks if the String is a valid phone number.
* It is valid if it only contains numbers or any of the characters
* +-() and space
*
* @param s the String to test for a valid phone number.
* @return true if the supplied String is a valid phone number,
* false if not.
*/
public boolean isValidPhoneNumber(String s) {
char[] a = {'-', '+', '(', ')', ' '};

try {
Double.parseDouble(removeChars(s, a));
return true;
} catch (NumberFormatException e) {
return false;
}
}

Apache Jakarta Commons Lang StringUtils has a variant of the removeChars method above called replaceChars that also can be useful.
[tags]Java[/tags]