JavaRush /Java Blog /Random-IT /Caratteri di escape in Java
Oleksandr Klymenko
Livello 13
Харків

Caratteri di escape in Java

Pubblicato nel gruppo Random-IT
Qualcosa è andato storto! Questo articolo è stato scritto come incarico di prova per una posizione nel team JavaRush. Ed è stato scritto come una conferenza a tutti gli effetti. Per questo motivo, ti garantisco la qualità e la quantità di conoscenze utili accumulate in questo post. Oltre alle informazioni pratiche e teoriche, l'articolo contiene fatti interessanti di cui forse non sei nemmeno a conoscenza! Caratteri di escape in Java - 1Ciao mondo! La fuga dei personaggi è una soluzione tecnica molto interessante e necessaria. La necessità di fuggire dai personaggi ha giocato un ruolo importante nella storia dell’intero settore della programmazione. In questo articolo parleremo di cos'è l'escape dei caratteri, perché è necessario eseguirne l'escape e come viene implementato l'escape dei caratteri in Java. L'articolo fornirà esempi e fatti interessanti relativi al tema della fuga dei personaggi. Buona lettura! Tutte le informazioni in un sistema informatico sono rappresentate sotto forma di testo, che a un livello inferiore è rappresentato da byte. Quando scriviamo una lettera o un messaggio, digitiamo un testo che sarà comprensibile a una persona. Quando scriviamo codice nell'IDE, digitiamo testo che il compilatore può analizzare. In Java, il testo può essere rappresentato come un tipo Stringi cui dati sono rappresentati da caratteri di controllo - virgolette.
String str = "Hello World!";
Con il testo "Hello World!" non sorgono problemi, ma cosa succede se lo stesso testo necessita di essere evidenziato nel discorso diretto? Utilizzando le regole della grammatica, diventa chiaro che il testo "Hello World!", oltre ai caratteri di controllo del tipo String, deve essere racchiuso tra virgolette vocali.
String str = "Java said, "Hello World!"";
Questa opzione non funzionerà, perché il compilatore semplicemente non capirà a che punto termina l'inizializzazione della variabile str. Per risolvere questo e altri problemi simili, è stato inventato l'escape dei caratteri , ovvero la modifica dei caratteri di controllo nelle cosiddette sequenze di controllo, note anche come sequenze di escape . Di seguito è riportato un elenco di sequenze di escape Java valide da utilizzare nelle stringhe. \t — Carattere Tab (in Java – l'equivalente di quattro spazi); \b— Un carattere di ritorno nel testo un passo indietro o l'eliminazione di un carattere in una riga (backspace); \n— Simbolo di nuova linea; \r— simbolo del ritorno a capo; \f— Salta la pagina all'inizio della pagina successiva; \'— Carattere virgoletta singola; \"— Carattere virgolette doppie; \\— Il carattere barra rovesciata ( \). Ora evidenziamo il discorso diretto nella nostra frase in modo che il compilatore possa analizzare facilmente ciò che è scritto.
String str = "Java said, \"Hello World!\"";
Pertanto, il testo scritto è comprensibile sia al compilatore che alla persona se il contenuto della variabile strviene visualizzato sullo schermo. Abbiamo capito cos'è la fuga dei personaggi e perché è necessaria. E sono persino sfuggiti al carattere delle virgolette doppie! Procediamo all'analisi delle rimanenti sequenze di escape. Il carattere tab in una riga è indicato da una sequenza di escape \ted è analogo a quattro spazi. Tuttavia, se la lunghezza di una stringa composta da quattro spazi è uguale alla lunghezza di quattro caratteri, la lunghezza di una stringa con un carattere di tabulazione sarà uguale a uno. Il carattere tab viene spesso utilizzato per costruire tabelle o elementi di interfaccia pseudografici , perché... Questo è più conveniente che scrivere quattro spazi. Di seguito è riportato un esempio di interfaccia pseudo-grafica. Caratteri di escape in Java - 2Tra tutte le sequenze di escape, il simbolo è \bforse la più interessante, perché ci permette di cancellare l'ultimo carattere nella riga di output, come se lo cancellassimo premendo il tasto backspace .
System.out.print("2 + 2 = 5"); // Screen displays 2 + 2 = 5
System.out.print("\b");// Screen displays 2 + 2 =
System.out.print("4");// Screen displays 2 + 2 = 4
I simboli \nhanno \runa storia comune: guardiamoli insieme. Potresti aver già incontrato il carattere di interruzione di riga \n. Ad esempio, se un metodo println()restituisce informazioni in modo che l'output successivo sia su una nuova riga, il metodo print()non esegue un'interruzione di riga dopo l'output, ma se aggiungi un carattere alla fine dell'output \n, allora un'interruzione di riga sarà eseguita.
System.out.print("Next output will be on a new line\n");
System.out.println("Next output will be on a new line");
Il carattere di ritorno a capo \rci consente di riportare il cursore all'inizio della riga di output e visualizzare nuove informazioni come se non ci fosse nulla in precedenza su quella riga.
System.out.print("Text to be rewritten.");//The screen displays "Text to be rewritten."
System.out.print('\r');//The screen is blank
System.out.print("New text.");//The screen displays "New text."
In effetti, il ritorno a capo risale ai tempi in cui il testo veniva stampato su macchine da scrivere. Per eseguire l'avanzamento riga era necessario spostare il carrello e abbassare la leva (parte del meccanismo della macchina da scrivere), dopodiché veniva eseguito l'avanzamento riga. Se la leva non veniva abbassata si poteva continuare a stampare sulla stessa riga. Questo è ciò che osserviamo quando visualizziamo il simbolo \r. A questo proposito, quando il programmatore voleva eseguire un'interruzione di riga, per abitudine eseguiva una sequenza di caratteri alla fine dell'output \r\n. Quando l'era della macchina da scrivere finì, c'era una generazione di programmatori che usava ancora questa sequenza, sebbene non avessero mai lavorato su una macchina da scrivere. Spesso dimenticavano l'ordine in cui dovevano completare una determinata sequenza, \r\noppure \n\r. Poi è venuta in loro aiuto una parola di prova return, dove l'ordine in cui questi simboli erano visualizzati era chiaramente visibile. Tuttavia, in seguito, durante lo sviluppo del software per le prime versioni di Windows, dopo MS-DOS, i programmatori furono costretti a utilizzare la sequenza \r\n. Ora non devi preoccuparti di questo e usa solo il carattere per interrompere una riga \n. Caratteri di escape in Java - 3Torniamo ancora indietro nel tempo, intorno agli anni '80. Fu allora che \fdivenne popolare il simbolo che indica la pagina in avanti fino all'inizio della pagina successiva. A quel tempo c'erano stampanti di grandi dimensioni, per lavorare con le quali era necessario scrivere un codice di programma contenente cosa e come avrebbe dovuto stampare la stampante. E per indicare che il testo deve iniziare da una nuova pagina è stato utilizzato il simbolo \f. Ai nostri giorni, questo simbolo ha perso da tempo la sua rilevanza ed è improbabile che tu lo incontrerai mai. Le dimensioni della stampante lineare sono piuttosto impressionanti. Caratteri di escape in Java - 4Con i simboli \’e \\tutto è esattamente come con l'escape delle virgolette doppie, c'era un esempio all'inizio dell'articolo. Dovrai evitare una virgoletta singola, ad esempio, per inizializzare il tipo char con una virgoletta singola.
char ch = '\'';
Escape il carattere barra rovesciata per indicare che il carattere successivo non farà parte della sequenza di escape.
System.out.println("\\n - line break escape sequence");
// Output: \n - line break escape sequence
In pratica, spesso devi evitare le barre rovesciate quando lavori con i percorsi:
System.out.println("It's Java string: \"C:\\Program Files\\Java\\jdk1.7.0\\bin\"");
// Output: It's Java string: "C:\Program Files\Java\jdk1.7.0\bin"
Ho sottolineato che queste sequenze di escape vengono utilizzate nelle stringhe (stringhe letterali), perché il resto viene utilizzato per descrivere le espressioni regolari della classe Patterne non è rilevante per l'argomento di questo articolo. Qui puoi vedere un elenco di tutte le sequenze di escape per la classe Pattern. Tuttavia, vale la pena notare che le espressioni regolari nella forma in cui esistono ora non possono essere immaginate senza l'uso di sequenze di escape, non solo in Java, ma anche in altri linguaggi di programmazione popolari, ad esempio PHP. In Java, l'escape dei caratteri viene utilizzato anche nella formattazione delle stringhe. Ad esempio, quando si specifica un formato stringa per visualizzare il simbolo di percentuale, è necessario duplicare il simbolo di percentuale - %%, altrimenti verrà visualizzato un errore e l'IDE richiederà di aggiungere la percentuale.
System.out.printf("Milk fat percentage : %d%%", 10);
// Milk fat percentage : 10%
Questo conclude l'articolo. Spero che tu abbia imparato molto sulla fuga dai personaggi e su come metterla in pratica. L'escape dei caratteri è inerente a molti linguaggi di programmazione. In Java, come in altri linguaggi simili al C, questa tecnologia è implementata in modo quasi identico. Pertanto, la conoscenza acquisita da questo articolo potrebbe essere utile non solo in Java. Grazie per l'attenzione e buona fortuna per i tuoi studi!
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION