JavaRush /Java-Blog /Random-DE /Escape-Zeichen in Java
Oleksandr Klymenko
Level 13
Харків

Escape-Zeichen in Java

Veröffentlicht in der Gruppe Random-DE
Etwas ist schief gelaufen! Dieser Artikel wurde als Testaufgabe für eine Stelle im JavaRush-Team geschrieben. Und es wurde als vollwertige Vorlesung geschrieben. Aus diesem Grund garantiere ich Ihnen die Qualität und Quantität des in diesem Beitrag gesammelten nützlichen Wissens. Neben praktischen und theoretischen Informationen enthält der Artikel interessante Fakten, von denen Sie vielleicht noch nicht einmal wissen! Escape-Zeichen in Java – 1Hallo Welt! Das Entkommen von Zeichen ist eine sehr interessante und notwendige technische Lösung. Die Notwendigkeit des Zeichen-Escapes hat in der Geschichte der gesamten Programmierbranche eine wichtige Rolle gespielt. In diesem Artikel werden wir darüber sprechen, was Zeichen-Escape ist, warum es notwendig ist, sie zu maskieren und wie Zeichen-Escape in Java implementiert wird. Der Artikel enthält Beispiele und interessante Fakten zum Thema Charakterflucht. Viel Spaß beim Lesen! Alle Informationen in einem Computersystem werden in Form von Text dargestellt, der auf einer niedrigeren Ebene durch Bytes dargestellt wird. Wenn wir einen Brief oder eine Nachricht schreiben, geben wir einen Text ein, der für die Person verständlich ist. Wenn wir Code in der IDE schreiben, geben wir Text ein, den der Compiler analysieren kann. In Java kann Text als ein Typ dargestellt werden, Stringdessen Daten durch Steuerzeichen – gepaarte Anführungszeichen – dargestellt werden.
String str = "Hello World!";
Mit dem Text „Hello World!“ Es treten keine Probleme auf, aber was ist, wenn derselbe Text in der direkten Rede hervorgehoben werden muss? Anhand der Regeln der Grammatik wird deutlich, dass der Text „Hello World!“ neben Steuerzeichen vom Typ auch Stringin direkte Anführungszeichen gesetzt werden muss.
String str = "Java said, "Hello World!"";
Diese Option wird nicht funktionieren, weil Der Compiler versteht einfach nicht, an welchem ​​Punkt die Initialisierung der Variablen endet str. Um dieses und ähnliche Probleme zu lösen, wurde die Erfindung von Escape-Zeichen erfunden , also von Steuerzeichen in sogenannte Steuersequenzen, auch Escape-Sequenzen genannt . Nachfolgend finden Sie eine Liste gültiger Java-Escape-Sequenzen zur Verwendung in Zeichenfolgen. \t — Tabulatorzeichen (in Java – das Äquivalent von vier Leerzeichen); \b— Ein Rückkehrzeichen im Text, das einen Schritt zurückgeht oder ein Zeichen in einer Zeile löscht (Rücktaste); \n— Neues Zeilensymbol; \r— Wagenrücklaufsymbol; \f— Die Seite zum Anfang der nächsten Seite überspringen; \'— Einfaches Anführungszeichen; \"— Doppeltes Anführungszeichen; \\– Das Backslash-Zeichen ( \). Lassen Sie uns nun die direkte Rede in unserem Satz hervorheben, damit der Compiler das Geschriebene leicht analysieren kann.
String str = "Java said, \"Hello World!\"";
Somit ist der geschriebene Text sowohl für den Compiler als auch für eine Person verständlich, wenn der Inhalt der Variablen strauf dem Bildschirm angezeigt wird. Wir haben herausgefunden, was Charakterflucht ist und warum sie nötig ist. Und sie entkamen sogar dem doppelten Anführungszeichen! Fahren wir mit dem Parsen der verbleibenden Escape-Sequenzen fort.
Was gibt es sonst noch zu lesen:

Java-Entwicklergruppe:

Das Tabulatorzeichen in einer Zeile wird durch eine Escape-Sequenz angezeigt \tund entspricht vier Leerzeichen. Wenn jedoch die Länge einer Zeichenfolge, die aus vier Leerzeichen besteht, gleich der Länge von vier Zeichen ist, ist die Länge einer Zeichenfolge mit einem Tabulatorzeichen gleich eins. Das Tabulatorzeichen wird häufig zum Erstellen von Tabellen oder pseudografischen Oberflächenelementen verwendet, weil... Dies ist praktischer als das Schreiben von vier Leerzeichen. Nachfolgend finden Sie ein Beispiel für eine pseudografische Schnittstelle. Escape-Zeichen in Java - 2Unter allen Escape-Sequenzen ist das Symbol \bvielleicht das interessanteste, da es uns ermöglicht, das letzte Zeichen in der Ausgabezeile zu löschen, ähnlich wie wenn wir es durch Drücken der Rücktaste löschen würden .
System.out.print("2 + 2 = 5"); // Bildschirm zeigt 2 + 2 = 5
System.out.print("\b");// Bildschirm zeigt 2 + 2 = an
System.out.print("4");// Bildschirm zeigt 2 + 2 = 4
Symbole \nhaben \reine gemeinsame Geschichte – schauen wir sie uns gemeinsam an. Möglicherweise ist Ihnen das Zeilenumbruchzeichen \nschon einmal begegnet. Wenn eine Methode beispielsweise println()Informationen so ausgibt, dass die nächste Ausgabe in einer neuen Zeile erfolgt, führt die Methode print()nach der Ausgabe keinen Zeilenumbruch durch. Wenn Sie jedoch am Ende der Ausgabe ein Zeichen hinzufügen \n, erfolgt ein Zeilenumbruch wird aufgeführt.
System.out.print(„Die nächste Ausgabe erfolgt in einer neuen Zeile\n“);
System.out.println(„Die nächste Ausgabe erfolgt in einer neuen Zeile“);
Mit dem Wagenrücklaufzeichen \rkönnen wir den Cursor an den Anfang der Ausgabezeile zurückbringen und neue Informationen anzeigen, als ob sich zuvor nichts in dieser Zeile befunden hätte.
System.out.print(„Text muss neu geschrieben werden.“);//Auf dem Bildschirm wird „Text, der neu geschrieben werden soll“ angezeigt.
System.out.print('\r');//Der Bildschirm ist leer
System.out.print(„Neuer Text.“);//Der Bildschirm zeigt „Neuer Text“ an.
Tatsächlich geht der Wagenrücklauf auf die Zeit zurück, als Texte auf Schreibmaschinen gedruckt wurden. Um einen Zeilenvorschub durchzuführen, war es notwendig, den Schlitten zu bewegen und den Hebel (Teil des Schreibmaschinenmechanismus) abzusenken, woraufhin der Zeilenvorschub durchgeführt wurde. Wenn der Hebel nicht abgesenkt wäre, könnte man in derselben Zeile weiterdrucken. Das beobachten wir, wenn wir das Symbol anzeigen \r. Wenn der Programmierer in diesem Zusammenhang einen Zeilenumbruch durchführen wollte, führte er aus Gewohnheit eine Zeichenfolge am Ende der Ausgabe aus \r\n. Als die Ära der Schreibmaschine zu Ende ging, gab es eine Generation von Programmierern, die diese Reihenfolge noch nutzten, obwohl sie selbst nie an einer Schreibmaschine gearbeitet hatten. Sie vergaßen oft, in welcher Reihenfolge sie eine bestimmte Sequenz abschließen mussten – \r\noder \n\r. Dann kam ihnen ein Testwort zu Hilfe return, bei dem die Reihenfolge, in der diese Symbole angezeigt wurden, deutlich erkennbar war. Später, bei der Entwicklung von Software für die ersten Windows-Versionen nach MS-DOS, waren Programmierer jedoch gezwungen, die Sequenz zu verwenden \r\n. Jetzt müssen Sie sich darüber keine Gedanken mehr machen und verwenden zum Umbrechen einer Zeile nur noch das Zeichen \n. Escape-Zeichen in Java – 3Gehen wir noch einmal zurück in die Zeit, etwa in die 80er Jahre. Damals \fwurde das Symbol für Vorwärtsblättern zum Anfang der nächsten Seite populär. Damals gab es Großzeilendrucker, für deren Betrieb man Programmcode schreiben musste, der festlegte, was und wie der Drucker drucken sollte. Und um anzuzeigen, dass der Text auf einer neuen Seite begonnen werden muss, wurde das Symbol verwendet \f. In unserer Zeit hat dieses Symbol längst seine Bedeutung verloren und es ist unwahrscheinlich, dass Sie jemals darauf stoßen werden. Die Abmessungen des Lineardruckers können sich durchaus sehen lassen. Escape-Zeichen in Java – 4Bei Symbolen \’ist \\alles genau das Gleiche wie beim Escapen eines doppelten Anführungszeichens, am Anfang des Artikels gab es ein Beispiel. Sie müssen beispielsweise ein einfaches Anführungszeichen maskieren, um den Typ char mit einem einfachen Anführungszeichen zu initialisieren.
char ch = '\'';
Escapen Sie das Backslash-Zeichen, um anzugeben, dass das folgende Zeichen nicht Teil der Escape-Sequenz sein wird.
System.out.println(„\\n – Zeilenumbruch-Escape-Sequenz“);
// Ausgabe: \n – Zeilenumbruch-Escape-Sequenz
In der Praxis müssen Sie beim Arbeiten mit Pfaden häufig auf Backslashes verzichten:
System.out.println("It's Java string: \"C:\\Program Files\\Java\\jdk1.7.0\\bin\"");
// Ausgabe: Es ist die Java-Zeichenfolge: „C:\Programme\Java\jdk1.7.0\bin“
Ich habe betont, dass diese Escape-Sequenzen in Strings (String-Literalen) verwendet werden, weil Der Rest wird zur Beschreibung regulärer Klassenausdrücke verwendet Patternund ist für das Thema dieses Artikels nicht relevant. Hier sehen Sie eine Liste aller Escape-Sequenzen für die Klasse Pattern. Es ist jedoch anzumerken, dass reguläre Ausdrücke in der Form, in der sie jetzt existieren, nicht ohne die Verwendung von Escape-Sequenzen vorstellbar sind, nicht nur in Java, sondern auch in anderen gängigen Programmiersprachen, beispielsweise PHP. In Java wird Zeichen-Escape auch bei der String-Formatierung verwendet. Wenn Sie beispielsweise ein Zeichenfolgenformat für die Anzeige des Prozentsymbols angeben, müssen Sie das Prozentsymbol duplizieren - %%, andernfalls erhalten wir eine Fehlermeldung und die IDE fordert Sie auf, den Prozentwert hinzuzufügen.
System.out.printf(„Milchfettanteil: %d%%“, 10);
// Milchfettanteil: 10 %
Damit ist der Artikel abgeschlossen. Ich hoffe, Sie haben viel über das Entkommen von Charakteren gelernt und wie Sie es in die Praxis umsetzen können. Zeichen-Escapezeichen sind in vielen Programmiersprachen üblich. In Java, wie auch in anderen C-ähnlichen Sprachen, ist diese Technologie nahezu identisch implementiert. Daher können die Erkenntnisse, die Sie in diesem Artikel gewinnen, nicht nur in Java nützlich sein. Vielen Dank für Ihre Aufmerksamkeit und viel Erfolg beim Studium!
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION