Helmichs Informatik-Lexikon

String (Klasse)

Die Klasse String gehört zu den Basis-Datentypen von Java, zumindest laut den offiziellen "Materialien zu den zentralen Abiturprüfungen im Fach Informatik ab 2012".

Attribute

Nach dem Grundsatz der Datenkapselung interessieren uns die Attribute der Klasse hier nicht!

Konstruktor(en)

Es gibt eine ganze Reihe von Konstruktoren der Klasse String, die wir im Prinzip aber alle nicht benötigen. In den meisten Fällen reicht es, eine Variable bzw. ein Attribut vom Typ String anzulegen wie zum Beispiel

String meldung;

oder

String[] buffer;

Nähere Einzelheiten zu den Konstruktoren der Klasse String finden sich auf den offiziellen Oracle-Seiten.


Methoden

char charAt(int index)

Diese sehr nützliche Methode liefert uns den Buchstaben zurück, der sich an der Position index des Strings befindet. Hier sind zwei Sachen zu beachten: Das erste Zeichen des Strings hat den Index 0 (genau wie bei einem Array, was daran liegt, dass ein String eigentlich ein Array aus char-Elementen ist). Und der Rückgabewert dieser sondierenden Methode ist nicht String, sondern char, was u.U. zu Kompatibilitätsproblemen führen könnte.

boolean equals(Object o)

Mit dieser Methode kann ein String mit einem anderen verglichen werden. Stimmen die beiden Strings überein, wird true zurückgeliefert, ansonsten false.

Interessant an dieser Methode ist der Parameter. Ein String kann nicht nur mit einem anderen String verglichen werden, sondern grundsätzlich mit einem beliebigen Objekt. Dazu muss man sagen, dass es für jedes Objekt eine interne String-Darstellung gibt, die vom Programmierer nicht festgelegt oder verändert werden kann. Und mit dieser internen String-Darstellung des Objektes wird jetzt der String verglichen.

int compareTo(String s)

Mit dieser Methode kann man zwei Strings vergleichen. Der String "dies" ist zum Beispiel "größer" als der String "das". Die ersten Buchstaben sind zwar identisch, aber die zweiten Zeichen unterscheiden sich, und da "i" > "a", gilt auch "dies" > "das".

Die Methode sucht nach Unterschieden in den beiden Strings. Ist ein solcher Unterschied an Position p gefunden worden, so werden die beiden Zeichen an der Position p miteinander verglichen; genau gesagt, findet eine Subtraktion statt: this.charAt(k) - s.charAt(k). Das Ergebnis dieser Subtraktion kann negativ, 0 oder positiv sein. Sind zwei Strings absolut identisch, wird der Wert 0 als Argument zurück geliefert.

boolean startsWith(String pre)
boolean endsWith(String post)

Sollte ein String den als Parameter übergebenen Präfix / Postfix enthalten, wird ein true zurück geliefert, andernfalls ein false. Eine sehr nützliche Funktion, besonders für die Analyse von Befehlszeilen. Will man zum Beispiel wissen, ob ein Stackmaschinen-Befehl mit "ADD" beginnt, so kann man einfach fragen

if befehl.startsWith("ADD") s.add();

int indexOf(String str)

Liefert den Index des ersten Vorkommens des Substrings str in dem String zurück. Sollte der Substring nicht in dem String vorkommen, wird der Wert -1 zurückgeliefert.

int length()

Wieder eine sehr nützliche Funktion, die die Länge des Strings zurückliefert, also die Anzahl der Zeichen, aus der der String besteht.

String substring(int begin, int end)

Mit dieser wichtigen Methode kann man einen Substring mitten aus einem vorhandenen String heraus extrahieren, ohne den Originalstring zu verändern. Dabei bezeichnen begin und end die Start- und die Endposition des Substrings.

Es gibt viele weitere Methoden der Klasse String, die hier nicht alle aufgeführt werden sollen. Erstens würde dadurch der Rahmen gesprengt, und zweitens würde die Übersichtlichkeit dieses Lexikoneintrags verloren gehen. Wozu gibt es aber die Original-Seiten der Firma Oracle?