I just found this method inside a “Utils”-type class in our codebase. It was written a long time ago by a developer who no longer works for us. What in tarnation is it doing? What is it returning?!? Of course, there’s no JavaDocs or comments.
public static String stripChars(String toChar, String ptn){
String stripped = "";
stripped = toChar.replaceAll(ptn, "$1");
return stripped.trim();
}
Thanks in advance!
It seems to replace everything in “toChar” which matches the regular expression “ptn” with the first group to match in “toChar”
Regular expressions have a concept of groups, for example matching “year 2012” and replacing it with “year 1012”, or “year 2006” with “year 1007” (changing the first 20 to 10) can be accomplished by replacing
“year 20([0-9][9-9])” with “year 20$1” — That is, match the entire string, and then replace it “year 20” followed by the first group (
$1). The group is the first thing in parenthesis.Anyway, your method then replaces everything that matches “ptn” in “toChar” with the first group in the regular expression “ptn”. So given
stripChars(“year 2012”, “year 20([0-9][9-9]”); You would receive back only “12” because the entire text would match and be replaced by only the first group.
It then trips any leading or trailing whitespace.