Stringhe e oggetti

sradesca
ho una matrice di stringhe e una stringa per vedere se la stringa è contenuta nella matrice devo usare == oppure .equals()?

Risposte
apatriarca
Nessuna delle due cose. Una matrice non è mai uguale ad una stringa. Quello che devi fare è fare un ciclo in cui confronti ogni elemento della matrice con la stringa (probabilmente usando equals o equalsIgnoreCase).

sradesca
intendevo infatti confrontare ogni elemento con la stringa non sapevo se usare l'operatore del confronto o il metodo equals. grazie

TheDoubt
Usare equals() è sempre la strada migliore.

Se ricordo bene, generalmente il compilatore Java, in caso di stringhe immutabili, è in grado di riconoscere quando sono uguali facendo in modo che le variabili che le referenziano puntino alla stessa locazione di memoria.
In questo caso, usando l'operatore == si va a verificare l'uguaglianza proprio dei puntatori alla memoria che, coincidendo, restituiscono esito positivo.

Tuttavia non bisogna mai prestare estrema "fiducia" nei servizi di un compilatore, perciò è meglio utilizzare il metodo equals() che esegue test in profondità, confrontando davvero le due stringhe.

apatriarca
Usa sempre equals quando devi confrontare due istanze di una classe in base ai dati che contengono.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.