Sonderzeichen in Java Strings

Java ist was Sonderzeichen in Strings angeht eigentlich relativ unkompliziert. Die normlaen Umlate kann man einfach in einen String rein schreiben, ohne dass es Probleme gibt. Nicht ganz so problemlos ist es, wenn man Anführungszeichen ( „…“ ) oder einen Backslash ( \ ) innerhalb eines Strings verwenden will.

Wenn man diese Zeichen einfach in den String hinenschreibt, weiß der Compiler unter Umständen nichts damit anzufangen.

String s1 = "Auf dem Schild stand "Willkommen" in großen Buchstaben.";

Welche Anführungszeichen Markieren den Anfang und das Ende des Strings und welche sind Teil davon? Was für einen Menschen (zumindest in diesem Beispiel recht eindeutig scheint, ist für einen Compiler Grund genug eine Fehlermeldung auszugeben.

Ähnlich uneindeutig kann es sich mit dem Backslash verhalten:

String s2 = "Zerst\u00f6rung!";

Möchte ich, dass der Inhalt des Strings tatsächlich „Zerst\00f6rung!“ ist, oder soll Java den Unicode auflösen und den String als „Zerstörung!“ darstellen? In diesem Fall würde der Compiler genau das tun.

Das Problem lässt sich lösen, indem man dem Sonderzeichen einen Backslash voranstellt. Wenn ich möchte, dass die Anführungszeichen im String enthalten sind, müsste ich also schreiben:

String s1 = "Auf dem Schild stand \"Willkommen\" in großen Buchstaben.";

Analog mit dem Backslash würde

String s2 = "Zerst\\00f6rung!";

bewirken, dass der Unicode nicht aufgelöst wird, sondern der inhalt des Strings „Zerst\00f6rung!“ lautet.

Schreibe einen Kommentar