Java – Comparare due stringhe con ==, un errore molto comune

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;
}