Не выдержала душа поэта :)
Открываю этим постом рубрику "странного кода", попадающегося на глаза при работе.
copy to clipboard
- class RegExFilenameFilter implements FilenameFilter {
- private Pattern pattern;
-
- public RegExFilenameFilter(String regex) {
- pattern = Pattern.compile(buildRegEx(regex));
- }
-
- @Override
- public boolean accept(File dir, String name) {
- return pattern.matcher(name).matches();
- }
-
- private String buildRegEx(String regex) {
- StringBuffer sb = new StringBuffer();
- for (int i = 0; i < regex.length(); ++i) {
- char c = regex.charAt(i);
- if (c == '*') {
- sb.append(".*");
- } else if (c == '.') {
- sb.append("\\.");
- } else {
- sb.append(c);
- }
- }
- sb.insert(0, "^");
- sb.append("$");
- return sb.toString();
- }
- }