Java String
Willemers Informatik-Ecke
String name = "James";
Der Speicherplatz eines Strings kann unterschiedlich groß sein. Eine String-Variable enthält nicht direkt die Zeichenkette, sondern ist eine Referenz, also ein Verweis auf die Zeichenkette. Wie bei Referenzen üblich, kann auch eine String-Variable mit null besetzt sein. Das bedeutet, dass die Referenz auf keinen String zeigt.

Eine Zuweisung funktioniert auf die gleiche Weise wie bei einer primitiven Variablen. Strings sind immutable Ein Vergleich klappt! Zumindest fast immer. Besser ist es, Sie verwenden die Methode equals. if (str.equals(“James“)) {

Literale

String-Literale werden in Anführungszeichen eingeschlossen. Will man Anführungszeichen im Literal einbinden, stellt man einen Backslash davor:
String dialog = “Er: \“Ich mag Dich.\“ Sie: \“Du mich auch.\““;
Der Backspace leitet Sonderzeichen ein:

\“ Anführungszeichen im Text
\‘ Hochkomma im Text
\t Tabulator
\n Neue Zeile
\\ Ein Backslash-Zeichen
\65 Ein Zeichen A (nach ASCII)

Die Codierung von Sonderzeichen wie etwa \168 wird nicht empfohlen, da dies die Codierung festlegt. Je nach Computertyp kann diese wechseln.

String-Methoden

Strings können mit einem einfachen Plus verbunden werden.
String str = “James“ + “Bond“; // “JamesBond“
Mit dem Pluszeichen können auch andere Typen an einen String angehängt werden.
String str = “James“ + 007; // “James7“
Auf diese Weise ist es recht einfach, einen Zahlenwert in einen String zu verwandeln.
int zahlenwert = 1991;
String str = "" + zahlenwert;
Für das Vergleichen von Strings ist die Verwendung von == problematisch, weil String-Variablen ja Referenzen sind. Es wird bei == nur verglichen, ob die beiden Variablen auf dieselbe Speicheradresse verweisen, nicht, ob die Inhalte gleich sind. Aufgrund des sehr leistungsfähigen Optimierer im Java-Laufzeitsystem funktioniert eine ==-Abfrage erstaunlich oft. Sinnvollerweise sollte man aber die Methode equals verwenden.
if (str.equals(“James7“)) {
Über die Methode charAt können einzelne Buchstaben aus dem String herausgesucht werden und einer char-Variablen zugewiesen werden.
char z = str.charAt(1); // z==‘a‘!
Wie viele Buchstaben ein String enthält, ermittelt die Methode length.
int zeichenzahl = str.length();
Sie können einen Teilstring in einem String mit der Methode indexOf ermitteln. Sie ermittelt die Position, an der der Suchstring im String vorliegt oder -1, wenn er nicht vorkommt.
int pos = str.indexOf(“me“);
In einer Überladung können Sie als zweiten Parameter die Position angeben, ab der gesucht werden soll. Damit ist es möglich nacheinander alle Positionen im String zu finden.
pos = str.indexOf(“me“, pos+1);
Die Methode liefert einen Teilstring zurück. Dazu werden Start- und Endeposition des Teilstrings als Parameter an die Methode subString übergeben.
String sub = str.substring(2, 5);

Strings umwandeln

int zahl = Integer.parseInt(str); double wert = Double.parseDouble(str); char zeichen = str.charAt(i); // i von 0 bis str.length()-1 String str = ““ + wert; // 15.4 wird “15.4“ String str = “James“ + “Bond“; // “JamesBond“

Zeichen und Zahlen arbeiten Hand in Hand

char zeichen = 'A';
zeichen += 3;
char ziffer = '7';
int zahl = ziffer - '0';
Das folgene Programm ermittelt die Quersumme aller Ziffern im String.
String str = "1234";
int summe = 0;
for (int i=0; i<str.length(); i++) {
	summe += str.charAt(i) - '0';
}
System.out.println(summe);
Das nächste Programm wandelt den String in die analoge int-Variable um.
String str = "1234";
int summe = 0;
for (int i=0; i<str.length(); i++) {
	summe *= 10;
	summe += str.charAt(i) - '0';
}
System.out.println(summe);