Wie sind ESCAPE-Sequenzen (z.B \f für einen Seitenvorschub) richtig anuwenden?

  • Themenstarter Themenstarter Gelöschtes Mitglied 45192
  • Beginndatum Beginndatum
G

Gelöschtes Mitglied 45192

Gast
Wie sind ESCAPE-Sequenzen (z.B \f für eine neue Zeile) richtig anuwenden?

Sehr geehrte Community,
ich habe vor einigen Tagen mit der Java programmierung angefnagen
und mir ein Grundlagenbuch gekauft.
Die meisten in dem Buch beschriebnen Programme,
wie ein Hello Welt Programm haben gut funktioniert.
Denoch hat nicht alles wie beschrieben geklappt.

Die meisten Programme habe ich mit einem einfachen Text-Editor erstellt
und über die Konsole (CMD) ausgeführt.
In einigen Programmen wollte ich neue Zeilen (mit \n)
oder Seitenforschübe (mit \f) mit hilfe von ESCAPE-Sequenzen erstellnen.
Die hat aber nicht funktioniert.
Hier ist ein Programm um diese Funktion zu Testen.
Es hat bis auf die Zeilenvorschübe funktioniert.

Java:
public class TestEscapeSequenzen {
    public static void main (String args[]) {

        String a = ("Erste Zeile'/n'Zweite Zeile");
        System.out.println(a);
        System.out.println("Dritte Zeile'/n'Vierte Zeile");
    }
}

Wo ist der Fehler?

Außerdem weiss ich nicht was folgende ESCAPE-Sequenten bewirken:

Java:
\b
\f
\r
\\

Es würde mich freuen wen ihr eine der Fragen beantworten könntet.
Besonders die Erste ist mir wichtig.

Mit Freunedlichen Grüßen euer "--->"
 
Am besten verwendest du

Java:
System.getProperty("line.separator");

Der einfach Grund ist abgesehen von der Plattformübergreifenden Funktionalität, in z.B einer JTextArea reicht ein einfaches
Java:
\n

während du wenn du z.B in eine Textdatei schreibst immer auch den System spezifischen Kontext berücksichtigen musst,
so musst du z.B unter Windows
Java:
\n\r
angeben damit auch wirklich ein Zeilenumbruch erfolgt.

Zumal dein Code nicht korrekt ist,

Java:
''
werden verwendet um chars zu kennzeichnen, oder bestimmte Teile eines String Literals besser kenntlich zu machen ( Optisch aber Funktionslos )

Java:
System.out.println("Dritte Zeile'/n'Vierte Zeile");

sondern

Java:
System.out.println("Dritte Zeile" + \n + "Vierte Zeile");
//oder
System.out.println("Dritte Zeile \nVierte Zeile");

Wie du sehen kannst musst du bei letzterem Beispiel auch den folgenden Text direkt dahinter schreiben, da ansonsten noch ein Leerzeichen nach Zeilenbeginn eingefügt wird, das du sonst wiederrum extra handhaben müsstest.

Falls du mit Zeilenvorschub nutzen des Tabulators meinen solltest , dies würde man dann mit
Java:
\t
realisieren.

Java:
\f
wäre ein Seitenumbruch.

und wirkliche Escape sequenzen benötigst du normalerweise nur für solche literale :

Java:
System.out.println("ich bin ein escapter \"String\" ");

Ausgabe :

Code:
ich bin ein escapter "String"

Gängig ist normalerweise die Definition einer Konstanten :

Java:
final static String LINE_SEPARATOR = System.getProperty("line.separator");

die dann ganz normal verwendet werden kann :

Java:
System.out.println("Dritte Zeile" + LINE_SEPARATOR + "Vierte Zeile");
 
Zuletzt bearbeitet:
Sehr geehrter kaoZ,
danke für die schnelle umfasende Antwort. :toll: :applaus:
Sie haben mir sehr weitergeholfen
und viele Verständnisprobleme beseitigt.
Ich galube der Grund warum bei mir
der Code nicht funktioniert hat ist,
dass die
Java:
/
falschrum sind.

Sie sagten das mein Code nicht fehlerfrei ist. :shock:
Wo sind den die anderen Fehler? :reflect:

Mit Freunedlichen Grüßen "--->"
 
Zuletzt bearbeitet von einem Moderator:
Sie sagten das mein Code nicht fehlerfrei ist.

das war darauf bezogen das des Escapen mit unter verwendung von
Code:
/
nicht funktionieren kann 🙂

zudem ist ein setzen von Klammern
Code:
()
beim definieren eines Strings nicht nötig

Java:
String a = "Ich bin ein String literal !";

Hier nochmal ein Link, vielleicht hilft das noch beim Verständnis der einzelnen Escape befehle

Escapen in Java
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben