У меня есть следующие символы, которые я хотел бы считать "незаконными":
~, #, @, *, +, %, {, }, <, >, [, ], |, ", ", \, _, ^
Я хотел бы написать метод, который проверяет строку и определяет (true/false), если эта строка содержит этих нелегалов:
public boolean containsIllegals(String toExamine) {
return toExamine.matches("^.*[~#@*+%{}<>[]|\"\\_^].*$");
}
Однако простая проверка matches(...) для этого невозможна. Мне нужен метод сканирования каждого символа в строке и убедитесь, что он не один из этих символов. Конечно, я мог бы сделать что-то ужасное, как:
public boolean containsIllegals(String toExamine) {
for(int i = 0; i < toExamine.length(); i++) {
char c = toExamine.charAt(i);
if(c == '~')
return true;
else if(c == '#')
return true;
// etc...
}
}
Есть ли более элегантный/эффективный способ выполнения этого?