Ce face StringBuilder.reverse
reverse() întoarce textul: primul caracter devine ultimul. Modificarea se face pe obiectul existent, iar metoda îl returnează, deci poți scrie new StringBuilder(s).reverse().toString() pentru a inversa un String.
Perechile de char care formează un singur caracter Unicode (de exemplu un emoji) sunt păstrate corect, nu sunt despărțite.
Ce returnează
Același StringBuilder, cu textul inversat.
Exemple
Exemplul 1: Inversarea unui cuvânt
public class Main {
public static void main(String[] args) {
String oras = "Brașov";
String invers = new StringBuilder(oras).reverse().toString();
System.out.println(invers);
}
}
Rezultat
voșarB
Exemplul 2: Este palindrom?
Ignorăm spațiile și literele mari înainte de comparare.
public class Main {
static boolean palindrom(String text) {
String curat = text.replace(" ", "").toLowerCase();
return curat.equals(new StringBuilder(curat).reverse().toString());
}
public static void main(String[] args) {
String[] texte = {"Ele", "Ana", "Cojoc", "Iași", "Ene"};
for (String t : texte) {
System.out.println(t + ": " + palindrom(t));
}
}
}
Rezultat
Ele: true
Ana: true
Cojoc: true
Iași: false
Ene: true
Exemplul 3: Inversarea cifrelor unui număr
public class Main {
public static void main(String[] args) {
int numar = 12340;
StringBuilder sb = new StringBuilder().append(numar).reverse();
System.out.println(sb);
System.out.println(Integer.parseInt(sb.toString()));
}
}
Rezultat
04321
4321
Greșeli frecvente
- Apelezi
reverse()și apoi te miri că și constructorul original s-a schimbat: inversarea se face pe loc, nu pe o copie. - Cauți metoda
reverse()laString: nu există. Treci prinStringBuilder.
Comenzi înrudite
StringBuilder: Un text care se poate modifica pe loc: adaugi, inserezi și ștergi fără să creezi un șir nou la fiecare pas.StringBuilder.append: Adaugă la sfârșitul textului un șir, un caracter, un număr sau orice obiect și returnează același StringBuilder.String.equals: Verifică dacă două șiruri au exact același text; equalsIgnoreCase și equalsFoldCase ignoră literele mari/mici.