• IT-Karriere:
  • Services:

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. ING-DiBa AG, Frankfurt am Main
  2. ilum:e informatik ag, Mainz

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.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • ohne Tracking
  • mit ausgeschaltetem Javascript
Textblöcke und String-Literale sind ununterscheidbar 
  1. 1
  2. 2
  3. 3
  4. 4
  5.  


Anzeige
Spiele-Angebote
  1. (-28%) 17,99€
  2. (-70%) 4,50€
  3. 53,99€
  4. (-56%) 17,50€

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
       


iPhone 11 Pro Max - Test

Das neue iPhone 11 Pro Max ist das erste iPhone mit einer Dreifachkamera. Dass sich diese lohnt, zeigt unser Test.

iPhone 11 Pro Max - Test Video aufrufen
Frauen in der IT: Ist Logik von Natur aus Männersache?
Frauen in der IT
Ist Logik von Natur aus Männersache?

Wenn es um die Frage geht, warum es immer noch so wenig Frauen in der IT gibt, kommt früher oder später das Argument, dass Frauen nicht eben zur Logik veranlagt seien. Kann die niedrige Zahl von Frauen in dieser Branche tatsächlich mit der Biologie erklärt werden?
Von Valerie Lux

  1. IT-Jobs Gibt es den Fachkräftemangel wirklich?
  2. Arbeit im Amt Wichtig ist ein Talent zum Zeittotschlagen
  3. IT-Freelancer Paradiesische Zustände

Gardena: Open Source, wie es sein soll
Gardena
Open Source, wie es sein soll

Wenn Entwickler mit Zeitdruck nach Lösungen suchen und sich dann für Open Source entscheiden, sollte das anderen als Vorbild dienen, sagen zwei Gardena-Entwickler in einem Vortrag. Der sei auch eine Anleitung dafür, das Management von der Open-Source-Idee zu überzeugen - was auch den Nutzern hilft.
Ein Bericht von Sebastian Grüner

  1. Linux-Kernel Machine-Learning allein findet keine Bugs
  2. KernelCI Der Linux-Kernel bekommt einheitliche Test-Umgebung
  3. Linux-Kernel Selbst Google ist unfähig, Android zu pflegen

Apple TV+ im Test: Apple-Kunden müssen auf jeden Streaming-Komfort verzichten
Apple TV+ im Test
Apple-Kunden müssen auf jeden Streaming-Komfort verzichten

Apple ist mit Apple TV+ gestartet. Wir haben das Streamingabo ausprobiert und waren entsetzt, wie rückständig alles umgesetzt ist. Der Kunde von Apple TV+ muss auf sehr viele Komfortfunktionen verzichten, die bei der Konkurrenz seit langem üblich sind.
Ein Test von Ingo Pakalski

  1. Apple TV+ Disney-Chef tritt aus Apple-Verwaltungsrat zurück
  2. Apple TV+ Apples Videostreamingdienst ist nicht konkurrenzfähig
  3. Apple TV+ Apples Streamingangebot kostet 4,99 Euro im Monat

    •  /