StringBuilder.reverse în Java

Inversează ordinea caracterelor din StringBuilder, pe loc.

Sintaxă
StringBuilder reverse()

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() la String: nu există. Treci prin StringBuilder.

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.