03.01 Strings – Eine Einführung

Zeichenketten werden für alle Ausgaben benötigt, egal ob auf grafischen Oberflächen, in der Konsole oder für Dateien. Deshalb gibt es – wie in jeder Programmiersprache – auch in Java Zeichenketten. Diese sind wie in anderen Sprachen eine Aneinanderreihung von einzelnen char-Elementen. Im Gegensatz zu C/C++, werden Zeichenketten in Java aber nicht durch ein Null-terminiertes char-Array dargestellt, sondern nur durch die Klasse String. Daher muss man nicht auf die interne Struktur der Zeichenkette achten. Da es sich bei einem String um eine Klasse handelt, greift dieses Kapitel den OOP Kapiteln teilweise voraus. Aber keine Sorge, Sie werden dieses Kapitel auch ohne Objekt-Orientierte Kenntnisse nachvollziehen können.

Das Außergewöhnliche an einer Zeichenkette in Java ist, dass sie fast wie ein primitiver Datentyp verwendet werden kann, aber gleichzeitig genau genommen ein Objekt einer Klasse darstellt. Somit verfügt ein String auch über alle damit verbundenen „Annehmlichkeiten“. Was das bedeutet, werden Sie in diesem und den nachfolgenden Kapiteln lernen. Eine erste Konsequenz ist die flexible Möglichkeit einen neuen String zu erstellen:

String str = new String("Hallo, ich bin ein String");
String str2 = "Hallo, ich bin auch ein String";

Zum Einen kann ein String wie eine ganz normale Klasse über das Schlüsselwort new initialisiert werden. Es ist aber ebenso möglich den gewünschten Wert gleich hinter das Gleichheitszeichen – wie bei einem primitiven Datentyp – zu schreiben. Dabei wird der Wert immer in Anführungszeichen gesetzt. Beide Varianten sind äquivalent zueinander.

Das bedeutet natürlich auch, dass diese Codezeile

System.out.println("Ich bin eine Ausgabe");

genau das Selbe erledigt wie diese hier:

System.out.println(new String("Ich bin eine Ausgabe"));

Da ein String eine Instanz einer Klasse ist, stehen auch mehrere Methoden zur Verfügung.

Eine Methode ist ein Code-Block, der durch seinen Namen über eine Klasse oder ein Objekt aufgerufen wird. Dabei wird meistens das Objekt manipuliert oder analysiert und ein entsprechender Wert zurückgeliefert. Manchen Methoden können/müssen auch Werte übergeben werden, um den Aufruf noch genauer zu spezifizieren. Hierzu aber mehr im OOP-Kapitel.

Eine davon ist die Methode length(), welche die Länge des Strings zurückgibt. Sie gehen nun vielleicht davon aus, dass die Methode nur so aufgerufen werden kann:

String str = "Hallo, ich bin ein String";
System.out.println(str.length());

Aufgrund der ungewöhnlichen Eigenschaften eines Strings ist aber auch folgende Variante möglich:

System.out.println("Hallo, ich bin ein String".length());

Sie sehen also, dass alles in doppelten Hochkommata als Objekt der Klasse String behandelt wird.

Zur Vollständigkeit sei noch erwähnt, dass die Klasse String final ist. Das ist zwar für Sie momentan noch uninteressant, behalten Sie diese Information aber für die Kapitel 04.05 Vererbung und 04.07 Weitere Modifizierer im Hinterkopf.

Ähnliche Beiträge