String.indent în Java

indent(n) adaugă sau scoate n spații la începutul fiecărui rând; stripIndent() elimină indentarea comună.

Sintaxă
String indent(int n)
String stripIndent()   // Java 15

Ce face String.indent

indent(n) împarte șirul în rânduri și adaugă n spații la începutul fiecăruia. Cu n negativ, scoate până la |n| spații albe de la începutul fiecărui rând. Rezultatul are mereu rândurile terminate cu \n, inclusiv ultimul.

stripIndent() (Java 15) găsește cea mai mică indentare comună tuturor rândurilor și o elimină, păstrând structura relativă. Elimină și spațiile de la finalul rândurilor. Este exact ce face compilatorul automat pentru text blocks; metoda e utilă pentru text venit din alte surse.

Parametri

Parametru Descriere
n Câte spații se adaugă (pozitiv) sau se scot (negativ) pe fiecare rând.

Ce returnează

Un șir nou, cu rândurile ajustate.

Exemple

Exemplul 1: Indentarea unui bloc de text

Punctele de la capătul rândurilor arată că indent pune \n și după ultimul rând.

public class Main {
    public static void main(String[] args) {
        String lista = "pâine\nlapte\nouă";
        System.out.print(lista.indent(4));
        System.out.println(".");
        String adanc = "      Iași\n        Copou";
        System.out.print(adanc.indent(-4));
    }
}

Rezultat

    pâine
    lapte
    ouă
.
  Iași
    Copou

Exemplul 2: stripIndent pe un text indentat

public class Main {
    public static void main(String[] args) {
        String cod = "        if (nota >= 5) {\n            System.out.println(\"Admis\");\n        }";
        System.out.println(cod.stripIndent());
    }
}

Rezultat

if (nota >= 5) {
    System.out.println("Admis");
}

Greșeli frecvente

  • Folosești print după indent și te miri de rândul gol în plus cu println. indent adaugă deja \n la final.
  • Aștepți ca stripIndent() să scoată toate spațiile: păstrează indentarea relativă dintre rânduri.

Comenzi înrudite

  • String.strip: Elimină spațiile de la începutul și sfârșitul șirului; stripLeading/stripTrailing doar dintr-o parte.
  • String.lines: Împarte șirul în rânduri și le returnează ca Stream<String>, recunoscând \n, \r și \r\n.
  • String.translateEscapes: Transformă secvențele scrise ca text (\n, \t, \”, \\) în caracterele reale, ca într-un literal Java.
  • String: Clasa pentru text în Java: un șir de caractere care nu se mai poate modifica după ce a fost creat.