Non avendo mai studiato Java ed essendomi ritrovato a programmare in questo linguaggio solo per via dello sviluppo su Android, sono rimasto parecchio stupito del fatto che == non funziona come previsto per comparare le stringhe.
Risulta infatti che
string s = new String ( “prova”);
if ( s == “prova”) {
fai_qualcosa;
}
Non viene eseguito poiché la guardia ritorna false. Il problema è che l’operatore == confronta se i due oggetti sono lo stesso oggetto, cosa che solitamente non è vera.
Per effettuare il confronto desiderato fra stringhe bisogna utilizzare il metodo equal(String stringa) dell’oggetto String. Il modo corretto di fare il confronto è quindi il seguente:
if (s.equals(“prova”)) {
fai_qualcosa;
}