Perché i<18? La lunghezza dell'array è sempre la stessa? Se si qual è?Originariamente inviato da hachi85
ciao, sto cercando di fare un metodo che mi ritorna vero se in un array di caratteri ci sono 3 caratteri specifici, falso altrimenti
io ho scritto così ma ovviamente è sagliato perchè in questo modo mi ritorna sempre falso, potete aiutarmi per favore?
codice:public boolean presenza3caratteri(char a, char b, char c) { for (int i=0; i<18; i++) { if ( caratteri[i]=='a'&&caratteri[i+1]=='b'&&caratteri[i+2]=='c') return true; return false; } }
Inoltre quello che stai controllando tu è se quei tre caratteri ci sono e sono uno dopo l'altro, condizione non necessaria (da quello che hai scritto tu).
E poi hai messo il return false dentro al for, che anche se tutto il resto fosse giusto andrebbe fuori.
Un modo abbastanza semplice sarebbe inizializzare tre variabili booleane a falso, una per ogni carattere, e scorrendo tutto l'array ad ogni iterazione guardi se il carattere "i" è uguale ad uno dei tre: in caso positivo, setti la relativa variabile booleana a true.
Alla fine ritorni true se e solo se son tutte vere.