Salve, dovrei creare un metodo booleano che mi controlli che data una stringa in input, nessuno dei suoi caratteri sia uguale a uno di questi : 'G', 'I', 'O', 'Q', 'U' .
Ho realizzato il metodo in diversi modi ma non sono riuscito ad ottenere ciò che voglio.
Ho provato piu volte a fare debug e ho notato che c'è un problema.
ecco il metodo
codice:
private static boolean checkNotAllowed(String stringa) {
boolean valida = false;
char[] notAllowed = { 'G', 'I', 'O', 'Q', 'U' };
for (int i = 0; i < stringa.length() ; i++) {
char attuale = stringa.charAt(i);
for (int j = 0; j < notAllowed.length; j++) {
if (attuale != notAllowed[j]) {
valida = true;
}
}
}
return valida;
}
ma questo ovviamente non va bene perchè per ogni controllo che fa nel secondo for controlla se è diversa imposta valida a true. Quindi non so come fare per verificare che esattamente tutta la stringa in input non contenga nessun carattere situato all'interno dell'array di caratteri notAllowed...
Come potrei fare??
con ragionamento analogo mi servirebbe sapere come fare un metodo che mi restituisca un booleano che mi controlli che la stringa in input sia costituita da SOLE lettere attraverso il metodo Character.isLetter(char ch)
Faccio lo stesso ragionamento di prima
codice:
private static boolean checkIsLetter(String stringa) {
boolean valida = false;
for (int i = 0; i < stringa.length() ; i++) {
char attuale = stringa.charAt(i);
if (Character.isLetter(attuale)) {
valida = true;
}
}
return valida;
}
Ovviamente non va bene perchè la modifica del booleano restituita rappresenta solo l'ultima occorrenza... se do in input ad esempio "2C" il primo carattere è un numero quindi dovrebbe restituire false ma siccome l'ultimo carattere è una lettera mi restituisce true...
COme potrei risolvere?