Ce face String.contentEquals
equals returnează true doar dacă celălalt obiect este tot un String. Un StringBuilder cu același text dă false. contentEquals compară doar caracterele, pentru orice CharSequence: String, StringBuilder, StringBuffer, CharBuffer.
Este util când construiești un text cu StringBuilder și vrei să îl compari cu un șir fără să apelezi toString() (care ar crea un obiect nou).
Parametri
| Parametru | Descriere |
|---|---|
cs / sb |
Secvența de caractere comparată. |
Ce returnează
true dacă secvența are exact aceleași caractere, în aceeași ordine.
Exemple
Exemplul 1: equals vs contentEquals cu StringBuilder
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
sb.append("Ia").append("și");
String oras = "Iași";
System.out.println(oras.equals(sb));
System.out.println(oras.contentEquals(sb));
System.out.println(oras.equals(sb.toString()));
}
}
Rezultat
false
true
true
Exemplul 2: Verificarea unui palindrom
Inversăm textul cu StringBuilder.reverse() și îl comparăm direct cu originalul.
public class Main {
static boolean palindrom(String s) {
String curat = s.toLowerCase().replace(" ", "");
return curat.contentEquals(new StringBuilder(curat).reverse());
}
public static void main(String[] args) {
System.out.println(palindrom("Ele fac cafele"));
System.out.println(palindrom("Cojocaru"));
System.out.println(palindrom("rotor"));
}
}
Rezultat
true
false
true
Greșeli frecvente
- Compari un
Stringcu unStringBuilderfolosindequalsși primești mereufalse. FoloseștecontentEqualssausb.toString().
Comenzi înrudite
String.equals: Verifică dacă două șiruri au exact același text; equalsIgnoreCase și equalsFoldCase ignoră literele mari/mici.StringBuilder: Un text care se poate modifica pe loc: adaugi, inserezi și ștergi fără să creezi un șir nou la fiecare pas.StringBuilder.reverse: Inversează ordinea caracterelor din StringBuilder, pe loc.