String.translateEscapes în Java

Transformă secvențele scrise ca text (\n, \t, \", \\) în caracterele reale, ca într-un literal Java.

Sintaxă
String translateEscapes()

Ce face String.translateEscapes

Uneori primești text în care un rând nou apare scris ca două caractere: backslash și n (de exemplu, dintr-un fișier de configurare sau de la tastatură). translateEscapes() interpretează aceste secvențe exact cum ar face compilatorul Java într-un literal: \n, \t, \b, \r, \f, \s (spațiu), \', \", \\ și secvențele octale (\101).

Secvențele Unicode \uXXXX nu sunt traduse. O secvență necunoscută (de exemplu \q) aruncă IllegalArgumentException.

Ce returnează

Un șir nou, cu secvențele înlocuite de caracterele reale.

Exemple

Exemplul 1: Text citit cu secvențe literale

Programul citește o linie în care \t și \n sunt scrise ca text.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String linie = in.nextLine();
        System.out.println("Original: " + linie + " (" + linie.length() + " caractere)");
        String tradus = linie.translateEscapes();
        System.out.println(tradus);
        System.out.println("(" + tradus.length() + " caractere)");
    }
}

Ce scrie utilizatorul (intrare)

Nume:\tAna\nOraș:\tIași

Rezultat

Original: Nume:\tAna\nOraș:\tIași (23 caractere)
Nume:	Ana
Oraș:	Iași
(20 caractere)

Exemplul 2: Secvență necunoscută

public class Main {
    public static void main(String[] args) {
        String bun = "Ea a spus: \\\"Bună!\\\"";
        System.out.println(bun);
        System.out.println(bun.translateEscapes());
        try {
            System.out.println("C:\\qwe".translateEscapes());
        } catch (IllegalArgumentException e) {
            System.out.println("Eroare: " + e.getMessage());
        }
    }
}

Rezultat

Ea a spus: \"Bună!\"
Ea a spus: "Bună!"
Eroare: Invalid escape sequence: \q \\u0071

Greșeli frecvente

  • Aplici translateEscapes pe căi Windows (C:\Users\nou): \n devine rând nou, iar \U aruncă excepție. Folosește metoda doar pe text care chiar conține secvențe Java.

Comenzi înrudite

  • String.indent: indent(n) adaugă sau scoate n spații la începutul fiecărui rând; stripIndent() elimină indentarea comună.
  • String.replace: Înlocuiește toate aparițiile unui caracter sau ale unui text cu altul; textul este căutat literal.
  • String: Clasa pentru text în Java: un șir de caractere care nu se mai poate modifica după ce a fost creat.