11.1 Grundlegende Eigenschaften
Wie in allen anderen Programmiersprachen gibt es auch in Java Zeichenketten.
Ähnlich wie in C und C++ kennt der Compiler nur einige ihrer
elementaren Eigenschaften und überläßt der Laufzeitbibliothek
einen Großteil der Implementierung. Wir werden uns in diesem
Kapitel die Implementierung und Verwendung von Zeichenketten in Java
ansehen und uns dabei der üblichen Praxis anschließen,
die Begriffe String und Zeichenkette synonym zu verwenden.
In Java werden Zeichenketten durch die Klasse String
repräsentiert. Sie bietet Methoden zum Erzeugen von Zeichenketten,
zur Extraktion von Teilstrings, zum Vergleich mit anderen Strings
und zur Erzeugung von Strings aus primitiven Typen. Der Compiler erkennt
und interpretiert String-Literale
und ist in der Lage, String-Objekte
zu erzeugen und zu verketten.
Eine Zeichenkette hat in Java prinzipiell dieselbe Bedeutung wie in
anderen Sprachen. Als Reihung von Elementen des Typs char
ist sie die wichtigste Datenstruktur für alle Aufgaben, die etwas
mit der Ein- und Ausgabe oder der Verarbeitung von Zeichen zu tun
haben.
Da der char-Typ
in Java durch ein Unicode-Zeichen repräsentiert wird, besteht
auch ein String aus einer Kette von Unicode-Zeichen. Abgesehen davon,
daß er dadurch doppelt soviel Speicher belegt wie ein ASCII-String,
braucht man sich darüber aber nicht allzu viele Gedanken zu machen.
Wegen der bereits in Kapitel 4
erwähnten Kompatibilität zwischen Unicode-Standard und ASCII-Zeichensatz
sind die Unterschiede bei der normalen Verwendung von Strings ohne
Belang.
Anders als in C braucht der Java-Programmierer keine Kenntnisse über
den internen Aufbau von Strings zu haben. Insbesondere ist nicht davon
auszugehen, daß ein String durch ein nullterminiertes Array
von char-Elementen
dargestellt wird. Natürlich heißt dies nicht, daß
die interne Struktur von Strings vollkommen anonym ist, denn
sowohl Compiler als auch Laufzeitsystem müssen sie kennen. Für
den Programmierer, der lediglich Java-Programme schreiben will, ist
sie aber bedeutungslos. |
 |
|
 |