„Hallo, Amigo!“

„Aber, Bilaabo, du hast schon Hallo gesagt.“

„Wirklich? Nun, ich beginne immer noch gerne jede Unterrichtsstunde mit diesem Satz.“

„Heute werden wir uns eingehend mit der String-Klasse befassen.“

„Aber ich weiß bereits alles darüber. Ich weiß sogar, dass die String-Klasse unveränderlich ist.“

„Die String-Klasse hat 46 Methoden. Wie viele davon kennen Sie?“

„Nicht mehr als zehn. Eigentlich wahrscheinlich höchstens fünf.“

„Dann hör zu.“

„Den Java-Entwicklern ist aufgefallen, dass die meisten Strings in Programmen nicht dazu gedacht sind, geändert zu werden, aber manchmal werden sie trotzdem geändert. Es ist sehr ärgerlich, wenn man einen String erstellt, etwas Wichtiges darin speichert, es an die Methode eines anderen übergibt und es dann geändert wird . Um dies zu verhindern, haben sie beschlossen, sowohl veränderliche als auch unveränderliche Strings zu erstellen.“

„Die String-Klasse ist für unveränderliche Strings und die StringBuilder- Klasse für veränderliche Strings. Objekte dieser Klassen lassen sich leicht in den anderen Typ konvertieren. In den meisten Fällen benötigen Java-Entwickler einfach String, was beweist, dass die Java-Entwickler Recht hatten.“

„Wenn ich also einen String benötige, verwende ich die String-Klasse. Und wenn ich einen veränderlichen String benötige, dann verwende ich die StringBuilder- Klasse?“

„Ja. Eigentlich gibt es eine andere Klasse namens StringBuffer. Es ist eine Kopie von StringBuilder, außer dass alle seine Methoden als synchronisiert deklariert sind , sodass auf das Objekt von verschiedenen Threads des Programms aus zugegriffen werden kann.“

„Und was ist mit diesem Beispiel? Wird hier nicht die Zeichenfolge geändert?“

String s = "cat";
s = s + "-" + s;

„Nein. Hier gibt es zwei String-Objekte: „cat“ und „cat-cat“. Das zweite wird mit dem ersten erstellt, aber das erste Objekt ändert sich nicht. In Wirklichkeit sind die Dinge hier viel interessanter. Hier ist der Code Der Compiler generiert, wenn er Ihr Beispiel kompiliert:"

String s = "cat";
StrinsBuilder s2 = new StringBuilder(s);
s2.append("-");
s2.append(s);
s = s2.toString();

„StringBuilder wird also fast immer zum Erstellen neuer Strings verwendet, aber manchmal erledigt der Compiler einfach die ganze Arbeit für Sie. Aber Ihre Version ist einfacher, finden Sie nicht?“

„Ja, es ist großartig, dass Java einen so fortschrittlichen Compiler hat.“

„Nun, jetzt gehen wir die Methoden der String-Klasse durch:“

1) Wie finde ich die Länge eines Strings?

„Die Längenmethode gibt die Länge eines Strings zurück (die Anzahl der darin enthaltenen Zeichen).“

Methode(n) Beispiel(e)
int length();
String s = "Good news, everyone!";
int n = s.length();
int n = "Good news, everyone!".length();

2) Wie erhalte ich ein Zeichen aus einem String?

„Die charAt- Methode gibt ein Zeichen aus einem String anhand seines Index zurück. Die Zeichenindizes beginnen bei 0.

Methode(n) Beispiel(e)
char charAt(int index)
String s = "Good news, everyone!";
char n = s.charAt(5);
char n = "Good news, everyone!".charAt(5);

3) Wie erhalte ich Zeichen aus einem String?

Wie erhalte ich Zeichen aus einem String?

Methode(n) Beispiel(e)
char[]toCharArray ()
String s = "Good news, everyone!";
for(char c: s.toCharArray())
{
System.out.println(c);
}

4) Wie vergleiche ich Strings?

„Die Methode „equals“ prüft, ob die Zeichenfolgen übereinstimmen, und die Methode „ equalsIgnoreCase“ prüft, ob die Zeichenfolgen übereinstimmen, wenn die Groß-/Kleinschreibung ignoriert wird.

Methode(n) Methode(n)
boolean equals(Object o)
String s = "cat";
boolean test1 = s.equals("cat");//true
boolean test2 = s.equals("Cat");//false
boolean test3 = s.equals("c"+"a"+"t");//true
boolean equalsIgnoreCase(String str)
String s = "cat";
boolean test1 = s.equalsIgnoreCase("cat");//true
boolean test2 = s.equalsIgnoreCase("Cat");//true
boolean test3 = s.equalsIgnoreCase("cAT");//true

5) Wie schreibe ich alle Buchstaben in einem String in Groß- oder Kleinbuchstaben?

„Die toUpperCase- Methode gibt eine Kopie des Strings mit allen Großbuchstaben zurück.“

„Die toLowerCase- Methode gibt eine Kopie des Strings mit allen Kleinbuchstaben zurück.“

Methode(n) Beispiel(e)
String toUpperCase()
String s = " Good news, everyone!  ";
s = s.toUpperCase();

Ergebnis:

s == "GOOD NEWS, EVERYONE!";
String toLowerCase()
String s = "Good news, everyone!";
s = s.toLowerCase();

Ergebnis:

s == "good news, everyone!";

6) Wie entferne ich Leerzeichen am Anfang und Ende eines Strings?

„Die trim-Methode gibt eine Kopie eines Strings ohne Leerzeichen am Anfang und Ende zurück.“

Methode(n) Beispiel(e)
String trim()
String s = "   Good news, everyone!   ";
s = s.trim();

Ergebnis:

s == "Good news, everyone!";