Abo
  • IT-Karriere:

Programmiersprache: Java 13 bringt mehrzeilige Strings mit Textblöcken

Die Sprache Java steht im Ruf, eher umständlich zu sein. Die Entwickler versuchen aber, viel daran zu ändern. Mit der nun verfügbaren Version Java 13 gibt es etwa Textblöcke, mit denen sich endlich angenehm und ohne unnötige Umstände mehrzeilige Strings definieren lassen.

Artikel von Nicolai Parlog veröffentlicht am
Java 13 ist verfügbar und bringt einen besseren Umgang mit Strings.
Java 13 ist verfügbar und bringt einen besseren Umgang mit Strings. (Bild: Couleur/Pixabay)

Heute erscheint Java 13. Neben sonst eher unauffälligen Neuerungen erweitert das Release die Sprache um mehrzeilige String-Literale, in Javas Jargon Textblöcke oder text blocks, die mit JEP 355 eingeführt wurden. Damit lassen sich etwa beim Logging bequem längere Textausgaben erzeugen, Schnipsel in anderen Sprachen wie HTML oder JSON erstellen - was insbesondere so manche Tests lesbarer machen wird - oder gar SQL-Statements formulieren.

Zum Beispiel so:

  1. String jsonBlock = """
  2. {
  3. greeting: "Hallo",
  4. audience: "Welt",
  5. punctuation: "!"
  6. }
  7. """;

Zum Vergleich: Das Ergebnis ist identisch mit dieser klassischen und wesentlich unangenehmeren Variante:

  1. String jsonLiteral = ""
  2. + "{\n"
  3. + "\tgreeting: \"Hallo\",\n"
  4. + "\taudience: \"Welt\",\n"
  5. + "\tpunctuation: \"!\"\n"
  6. + "}\n";

Stellenmarkt
  1. Techniker Krankenkasse, Hamburg
  2. Wirecard Technologies GmbH, Aschheim bei München

Bevor man Textblöcke in Java 13 nutzen kann, muss man sie allerdings freischalten, denn sie sind zunächst nur als Feature-Vorschau enthalten. Zur Kompilierung und Ausführung auf der Kommandozeile oder im Build Tool muss an java und javac der Parameter --enable preview angehängt werden. In Eclipse gibt es in den Compiler-Optionen eine entsprechende Einstellung. In Intellij IDEA muss das Sprachlevel für das Modul passend gewählt werden.

Drei Anführungszeichen für einen Textblock

Textblöcke können überall verwendet werden, wo sonst klassische String-Literale "wie dieses" akzeptiert werden und sie haben eine einfache Syntax:

Sie beginnen mit drei Anführungszeichen und einem Zeilenumbruch. Sie enden mit drei Anführungszeichen, die entweder in der letzten Zeile des Blocks oder auf einer eigenen Zeile stehen. Innerhalb des Strings werden Escape-Sequenzen wie üblich interpretiert, die Strings sind also nicht roh.

Der Zeilenumbruch zu Beginn des Blocks wird dabei nicht Teil des abschließenden Strings. Stehen die abschließenden Anführungszeichen in einer eigenen Zeile, endet der String allerdings mit einem Zeilenumbruch; Zwischenraumzeichen in dieser Zeile, also zum Beispiel Leerzeichen und Tabs, werden nie Teil des Strings.

Da einzelne Anführungszeichen im Kontext eines Textblocks keine syntaktische Bedeutung haben, ihn also insbesondere nicht beenden, ist Escaping nicht nötig. Damit fällt die üblicherweise größte Quelle von Escape-Sequenzen weg und es wird wesentlich angenehmer, Sprachen wie HTML oder JSON in Java einzubetten.

Hat man einen Textblock im Quellcode untergebracht, ist es natürlich Aufgabe des Compilers, ihn zu verarbeiten. Wie, beleuchten die nächsten Seiten. Aber es ist sinnvoll, vorher kurz über das Ergebnis zu sprechen.

Textblöcke und String-Literale sind ununterscheidbar 
  1. 1
  2. 2
  3. 3
  4. 4
  5.  


Anzeige
Top-Angebote
  1. 337,00€
  2. 69,99€ (Release am 25. Oktober)
  3. 39,99€ (Release am 3. Dezember)
  4. (aktuell u. a. Corsair Glaive RGB Gaming-Maus für 32,99€, Microsoft Office 365 Home 1 Jahr für...

sambache 23. Sep 2019 / Themenstart

Kurven und Graphen sind die Visualisierung von Zahlen. Symbole sind Strings der Länge 1...

Sybok 19. Sep 2019 / Themenstart

Ach von Perl kommt es. OK, gut zu wissen. Für Murks halte ich es dennoch nicht, wenn es...

Sybok 19. Sep 2019 / Themenstart

Ganz ehrlich: Ohne mich weiter informiert zu haben sagt mir mein Bauchgefühl auch, dass...

hl_1001 18. Sep 2019 / Themenstart

Danke, stimmt. Habe auch bei meinem Umstieg von Java auf C# bald gesehen wie weit hinten...

CSCmdr 18. Sep 2019 / Themenstart

Würde vielleicht helfen, ein paar Zeilenumbrüche mit entsprechenden Einrückungen zu...

Kommentieren


Folgen Sie uns
       


Samsung Galaxy Fold - Hands on (Ifa 2019)

Das Galaxy Fold scheint gerettet: Samsungs Verbesserungen zahlen sich aus, wie unser erster Test des Gerätes zeigt.

Samsung Galaxy Fold - Hands on (Ifa 2019) Video aufrufen
Change-Management: Die Zeiten, sie, äh, ändern sich
Change-Management
Die Zeiten, sie, äh, ändern sich

Einen Change zu wollen, gehört heute zum guten Ton in der Unternehmensführung. Doch ein erzwungener Wandel in der Firmenkultur löst oft keine Probleme und schafft sogar neue.
Ein Erfahrungsbericht von Marvin Engel

  1. IT-Jobs Der Amtsschimmel wiehert jetzt agil
  2. MINT Werden Frauen überfördert?
  3. Recruiting Wenn das eigene Wachstum zur Herausforderung wird

IT-Sicherheit: Auch kleine Netze brauchen eine Firewall
IT-Sicherheit
Auch kleine Netze brauchen eine Firewall

Unternehmen mit kleinem Geldbeutel verzichten häufig auf eine Firewall. Das sollten sie aber nicht tun, wenn ihnen die Sicherheit ihres Netzwerks wichtig ist.
Von Götz Güttich

  1. Anzeige Wo Daten wirklich sicher liegen
  2. Erasure Coding Das Ende von Raid kommt durch Mathematik
  3. Endpoint Security IT-Sicherheit ist ein Cocktail mit vielen Zutaten

SSD-Kompendium: AHCI, M.2, NVMe, PCIe, Sata, U.2 - ein Überblick
SSD-Kompendium
AHCI, M.2, NVMe, PCIe, Sata, U.2 - ein Überblick

Heutige SSDs gibt es in allerhand Formfaktoren mit diversen Anbindungen und Protokollen, selbst der verwendete Speicher ist längst nicht mehr zwingend NAND-Flash. Wir erläutern die Unterschiede und Gemeinsamkeiten der Solid State Drives.
Von Marc Sauter

  1. PM1733 Samsungs PCIe-Gen4-SSD macht die 8 GByte/s voll
  2. PS5018-E18 Phisons PCIe-Gen4-SSD-Controller liefert 7 GByte/s
  3. Ultrastar SN640 Western Digital bringt SSD mit 31 TByte im E1.L-Ruler-Format

    •  /