erstellt 28.01.06; übersetzt 12.04.10, überarbeitet 03.02.20, 21.09.20; Deutsche Übersetzung Heinrich Gailer
Allgemeine Hinweise: Schreiben Sie jedes Programm wie angegeben. Keines dieser Programme erwartet die Eingabe von Daten durch den Anwender. Die Werte, die von den Programmen verwendet werden, sind durch Deklaration und Zuweisungsanweisungen fest kodiert. Das ist normalerweise eine schlechte Form der Programmierung, aber gut genug für jetzt.
Schreiben Sie ein Programm, dass ein String
-Objekt erzeugt, das den String "Hello World" (oder anderen String enthält). Weisen Sie die Referenz auf das Objekt einer Referenzvariablen zu, vielleicht str1
. Geben Sie jetzt die Zeichen auf den Bildschirm aus:
System.out.println( str1 );
Führen Sie das Programm aus, um sicher zu gehen, dass es so funktioniert, wie Sie es erwarten.
Fügen Sie jetzt eine zweite Referenzvariable hinzu, aber erzeugen Sie für diese kein Objekt, auf das sie verweist. Fügen Sie eine Anweisung hinzu, die diese zweite Variable verwendet, als wenn sie eine gültige Objektreferenz enthalten würde. Führen Sie das Programm aus und sehen Sie was passiert:
System.out.println( zweiteVariable );
Experimentieren Sie ein bisschen mit dem Programm, um die Vorstellung in Ihrem Kopf zu zementieren, dass ein Objekt und dessen Referenzvariable zwei verschiedene Dinge sind und, dass ein Objekt zur Laufzeit erzeugt wird.
Zurück zum Inhaltsverzeichnis.
Kompilieren und führen Sie das Programm StringDemo2
dieses Kapitels aus.
class StringDemo2 { public static void main ( String[] args ) { String str; int len; str = new String( "Elementary, my dear Watson!" ); len = str.length(); System.out.println("Die Laenge ist: " + len ); } }
Ändern Sie jetzt den String
auf verschiedene Weise und beobachten die Auswirkung auf die berechnete Stringlänge. Fügen Sie zusätzliche Leerzeichen auf beiden Seiten des Strings und innerhalb des Strings hinzu; fügen Sie weitere Satzzeichen hinzu; fügen Sie ein Tab-Zeichen ein (ein richtiges Tab-Zeichen, nicht einfach Leerzeichen). Beachten Sie, das die Länge des Strings "MMMMMM" die gleiche ist wie von "iiiiii".
Zurück zum Inhaltsverzeichnis.
String
-Methode, die einen neuen String
erzeugt
Es ist oft nützlich unnötige Leerzeichen auf beiden Seiten des Strings zu entfernen.
Die trim()
Methode des String
-Objekts tut das.
Sie erzeugt ein neues String
-Objekt aus einem Bestehenden. Dabei hat das neue String
-Objekt alle Zeichen des Originals, bis auf die Leer- und Tab-Zeichen auf beiden Seiten, die entfernt wurden.
Der ursprüngliche String
wird nicht geändert. Zum Beispiel, nachdem die folgenden Anweisungen ausgeführt wurden
String erster = new String(" In einem Loch in der Erde, da lebte ein Hobbit. "); String zweiter; zweiter = erster.trim();
gibt es ein zweites Objekt auf das zweiter
verweist, das die Zeichen
"In einem Loch in der Erde, da lebte ein Hobbit."
enthält. Beachten Sie, dass die inneren zusätzlichen Leerzeichen erhalten bleiben.
Schreiben Sie ein Programm (oder modifizieren Sie das vorherige), das einen
String
erzeugt, indem es trim()
eines ursprünglichen Strings aufruft. Geben Sie beide Strings auf den Bildschirm aus.
Experimentieren Sie mit Leer- und Tab-Zeichen, um festzustellen, was vom Original entfernt wird.
Zurück zum Inhaltsverzeichnis.
substring()
Kompilieren und führen Sie das Programm aus diesem Kapitel (siehe unten) aus, um zu bestätigen, dass es funktioniert. Ändern Sie dann die 8 in einen anderen Wert und überprüfen Sie, ob das Ergebnis das ist, was Sie erwarten.
class StringDemo3 { public static void main ( String[] args ) { String str = new String( "Golf is a good walk spoiled." ); // erzeuge das originale Stringobjekt String sub = str.substring(8); // erzeuge ein neues Objekt aus dem Original System.out.println( sub ); } }
String
-Objekte haben noch eine andere Version der substring()
Methode, die wie folgt aussieht:
substring( int startIndex, int endIndex )
Diese Methode erzeugt ein neues String
-Objekt basierend auf dem ursprünglichen Objekt, das aber nur die Zeichen enthalten wird, die mit startIndex
beginnen und mit endIndex - 1
enden. Daher ist die Länge eines Substrings endIndex - beginIndex
.
Die Methode erzeugt ein völlig neues Objekt: die Zeichen, die es enthält, sind eine Kopie der Zeichen des Originalobjekts. Zum Beispiel:
String str = new String( "Golf is a good walk spoiled." ); // erzeuge das Oiginalobjekt String sub = str.substring(8, 19); // erzeuge ein neues Objekt aus dem Original
erzeugt ein neues Objekt (referenziert von sub
), das die Zeichen
"a good walk" enthält.
Modifizieren Sie Ihr Programm, so dass es diese substring()
Methode mit zwei Parameter aufruft. Experimentieren Sie mit den zwei Parameter, um zu sehen, wie sie funktionieren. Versuchen Sie das Folgende:
str.length()-1
startIndex
bis zum Ende des Strings zu bekommen, verwenden Sie als zweiten Parameter str.length()
Gute Programmierer schreiben Methoden, so dass sie vernünftig mit allen möglichen Eingabewerten umgehen können, auch mit denen, die keinen Sinn ergeben. Und aus guten Gründen der Sicherheit müssen Programmierer damit rechnen, dass manche Anwender bösartig versuchen werden Parameter zu finden, die Probleme oder ein merkwürdiges Verhalten verursachen, das dann irgendwie ausgenützt werden kann.
Zurück zum Inhaltsverzeichnis.
Ende der Aufgaben