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
translateEscapespe căi Windows (C:\Users\nou):\ndevine rând nou, iar\Uaruncă 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.