У меня есть следующие символы, которые я хотел бы считать "незаконными":
~
, #
, @
, *
, +
, %
, {
, }
, <
, >
, [
, ]
, |
, "
, "
, \
, _
, ^
Я хотел бы написать метод, который проверяет строку и определяет (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...
}
}
Есть ли более элегантный/эффективный способ выполнения этого?