public boolean hasIllegalCharacters(String newString) {
boolean hasIllegalChars = false;
char[] illegalChars = {'!', '#', '$', '%', '^', '&', '*', '(', ')' };
for (int i = 0; i < newString.length; i++) {
for (int j = 0; j < illegalChars.length; j++) {
if (newString.charAt(i) == illgalChars[j]) {
hasIllegalChars = true;
}
}
}
return hasIllegalChars;
}
Идея заключается в том, что вы начинаете с предположения, что оно будет ложным, и устанавливаете его в значение true, только если вы найдете недопустимый символ.
Если вы хотите вернуться сразу же после первогонайден недопустимый символ, затем сразу после строки hasIllegalChars = true;
вы можете добавить оператор break;
.
Чтобы посмотреть на противоположный случай, если вы хотите вернуть true , только если newString
содержит ничего, кроме недопустимых символов, тогда вы можете перевернуть все, начать с предположения, что оно истинно и инициализировать hasIllegalChars
до true
, а затем установить его в false
внутри вложенного for
циклы, если найдено что-либо, что не недопустимый символ, с этим кодом (объявление циклов и метода for
такое же):
hasIllegalCharacters = true;
...nested for loops...
if (newString.charAt(i) != illegalChars[j]) {
hasIllegalChars = false;
// optional "break;" or "return false;" statement here
}
...
return hasIllegalChars;
... но в этомcase я бы порекомендовал переименовать метод в isAllIllegalCharacters или что-то подобное.