In der vorherigen Java-Grundlagenreihe wurden die Kernkonzepte von Java erörtert, insbesondere die Grundlagen der Objektorientierung. In Java Advanced werde ich die Grundlagen von Java ergänzen und auf die Anwendungsebene wechseln.
Die meisten Programmiersprachen können mit Strings umgehen. Eine Zeichenfolge ist eine geordnete Sammlung von Zeichen, z. B. „Hello World!“. In Java werden Strings als String-Klassenobjekte gespeichert. Durch Aufrufen von Methoden von String-Objekten können stringbezogene Operationen implementiert werden.
Die String-Klasse ist im Paket java.lang enthalten. Dieses Paket wird beim Start von Java automatisch importiert, sodass es als integrierte Klasse verwendet werden kann. Wir müssen import nicht explizit verwenden, um die String-Klasse einzuführen.
Zeichenfolge erstellen
Bisher haben wir Klassen zum Erstellen von Objekten verwendet. Es ist zu beachten, dass das Schlüsselwort new nicht erforderlich ist, um ein String-Klassenobjekt zu erstellen. Zum Beispiel:
Kopieren Sie den Codecode wie folgt:
Öffentlicher Klassentest
{
public static void main(String[] args)
{
String s = „Hallo Welt!“;
System.out.println(s);
}
}
Wenn Sie einen „Hello World“-Ausdruck schreiben, ist das Objekt tatsächlich bereits im Speicher erstellt. Wenn Sie new String("Hello World!") verwenden, wird ein String-Objekt wiederholt erstellt.
Ein Objekt
Die String-Klasse ist die einzige Klasse, die zum Erstellen von Objekten nicht das Schlüsselwort new benötigt. Bei der Verwendung ist Vorsicht geboten.
String-Operationen
Sie können + verwenden, um Zeichenfolgen zu verketten, zum Beispiel:
Kopieren Sie den Codecode wie folgt:
„abc“ + s
String-Operationen werden meist über die entsprechenden String-Methoden implementiert, z. B. die folgenden Methoden:
Kopieren Sie den Codecode wie folgt:
Methodeneffekt
s.length() gibt die Länge des s-Strings zurück
s.charAt(2) gibt das Zeichen mit dem Index 2 im s-String zurück
s.substring(0, 4) gibt den Teilstring mit den Indizes 0 bis 4 im s-String zurück.
s.indexOf("Hello") gibt den Index des Teilstrings "Hello" zurück
s.startsWith(" ") bestimmt, ob s mit einem Leerzeichen beginnt
s.endsWith("oo") bestimmt, ob s mit "oo" endet
s.equals("Good World!") bestimmt, ob s gleich „Good World!“ ist.
== kann nur feststellen, ob die Zeichenfolge am selben Ort gespeichert ist. Sie müssen equal() verwenden, um festzustellen, ob der Inhalt der Zeichenfolgen gleich ist.
s.compareTo("Hello Nerd!") vergleicht die s-Zeichenfolge mit der Reihenfolge von "Hello Nerd!"
Gibt eine Ganzzahl zurück. Wenn <0, bedeutet dies, dass s vor „Hallo Nerd!“ steht.
Wenn >0, bedeutet das, dass s nach „Hallo Nerd!“ steht;
Wenn ==0, bedeutet dies, dass s gleich „Hallo Nerd!“ ist.
s.trim() entfernt die Leerzeichenzeichenfolge vor und nach s und gibt eine neue Zeichenfolge zurück
s.toUpperCase() wandelt s in Großbuchstaben um und gibt einen neuen String zurück
s.toLowerCase() wandelt s in Kleinbuchstaben um und gibt eine neue Zeichenfolge zurück
s.replace("World", "Universe") ersetzt "World" durch "Universe" und gibt einen neuen String zurück
unveränderliche Objekte
String-Klassenobjekte sind unveränderliche Objekte. Programmierer können bestehende unveränderliche Objekte nicht ändern. Wir können auch selbst unveränderliche Objekte erstellen, solange die Schnittstelle keine Methoden zum Ändern von Daten bereitstellt.
Objekte der String-Klasse verfügen jedoch über Funktionen zum Bearbeiten von Strings, wie etwa replace(). Diese Bearbeitungsfunktionen werden implementiert, indem ein neues Objekt erstellt wird, anstatt das ursprüngliche Objekt zu ändern. Zum Beispiel:
Kopieren Sie den Codecode wie folgt:
s = s.replace("World", "Universe");
Der Aufruf von s.replace() auf der rechten Seite erstellt eine neue Zeichenfolge „Hello Universe!“ und gibt (eine Referenz auf) dieses Objekt zurück. Durch Zuweisung verweisen die Referenz-s auf die neue Zeichenfolge. Wenn keine weiteren Verweise auf die ursprüngliche Zeichenfolge „Hello World!“ vorhanden sind, wird das ursprüngliche Zeichenfolgenobjekt durch Garbage Collection erfasst.
unveränderliche Objekte
Java-API
Java bietet viele leistungsstarke Pakete. Ein wichtiger Aspekt des Java-Lernens ist das Verständnis dieser Pakete und der darin enthaltenen APIs (Application Programming Interface). Die String-Klasse ist in java.lang.String definiert. Sie können die folgende Oracle-Website abfragen, um die offizielle Dokumentation dieser Klasse zu finden:
http://docs.oracle.com/javase/6/docs/api/java/lang/String.html
Dieses Dokument enthält die umfassendste Einführung in die String-Klasse.
Tatsächlich gibt es in der API-Dokumentation eine Fülle von Inhalten, über die Sie sich unter dem folgenden Link einen Überblick verschaffen können:
http://docs.oracle.com/javase/6/docs/api/