„Hallo, Amigo!“

„Soweit ich weiß, hat Rishi Ihnen bereits von regulären Ausdrücken erzählt.“

„Ja, es war sehr interessant.“

„Großartig, jetzt erzähle ich Ihnen, wie Sie reguläre Ausdrücke für die Arbeit mit Strings verwenden.“

„Beginnen wir mit der einfachsten Frage:“

1) Wie überprüfe ich, ob ein String mit dem durch einen regulären Ausdruck angegebenen Muster übereinstimmt?

„Dafür gibt es eine Match-Methode. Sie übergeben einen String, der einen regulären Ausdruck enthält, und die Methode gibt true oder false zurück.“

Methode(n) Beispiel(e)
boolean matches(String regex)
String s = "Good news, everyone!";
Boolean test = s.matches("news\\.*");
Ergebnis:

false (the String doesn't start with "news")

2) Wie ersetze ich alle passenden Teilzeichenfolgen durch andere Zeichenfolgen?

„Dafür gibt es zwei Methoden.“

„Die Methode replaceAll ersetzt alle Vorkommen einer Teilzeichenfolge durch eine andere Zeichenfolge.“

„Die Methode replaceFirst ersetzt das erste Vorkommen einer übergebenen Teilzeichenfolge durch eine angegebene Zeichenfolge.“

Methode(n) Beispiel(e)
String replaceAll(String regex, String replacement)
String s = "Good news, everyone!";
String s2 = s.replaceAll ("e\\.","EX");
Ergebnis:

s2 == "Good nEXs EXEXyonEX";
String replaceFirst(String regex, String replacement)
String s = "Good news, everyone!";
String s2 = s.replaceFirst("e\\.","EX");
Ergebnis:

s2 == "Good nEXs, everyone!";

3) Wie zerlege ich eine Zeichenfolge in Teile?

„Dafür haben wir die Split-Methode, die eine begrenzende Maske benötigt:“

Methode(n) Beispiel(e)
String[] split(String regex)
String s = "Good news everyone!";
String[] ss = s.split("ne");
System.out.println(Arrays.toString(ss));
Ergebnis (ein Array aus drei Strings):

[Good , ws everyo, !]
"Good ", "ws everyo", "!";

„Die StringTokenizer- Klasse ist eine weitere Möglichkeit, einen String in Teile aufzuteilen .“

„Diese Klasse verwendet keine regulären Ausdrücke. Stattdessen übergeben Sie einfach einen String, der eine Reihe von Trennzeichen enthält. Der Vorteil dieses Ansatzes besteht darin, dass er nicht den gesamten String auf einmal in Stücke zerlegt, sondern sich langsam von dort fortbewegt vom Anfang bis zum Ende.

„Die Klasse besteht aus einem Konstruktor und zwei Methoden. Sie müssen den String, den wir aufteilen, zusammen mit einem String, der den Satz begrenzender Zeichen enthält, an den Konstruktor übergeben.“

Die nextToken-Methode gibt das nächste Token (Teilzeichenfolge) zurück.

Die Methode hasMoreTokens() gibt true zurück, wenn noch Teilzeichenfolgen vorhanden sind, die noch nicht zurückgegeben wurden.

Methode(n) Beispiel(e)
boolean hasMoreTokens()

String nextToken()
String s = "Good news, everyone!";

StringTokenizer tokenizer =
new StringTokenizer(s,"ne");
while (tokenizer.hasMoreTokens())
{
String token = tokenizer.nextToken();
System.out.println(token);
}
Bildschirmausgabe:

Good
ws
v
ryo
!

„Beachten Sie, dass jedes Zeichen im zweiten String, der an den StringTokenizer- Konstruktor übergeben wird, als Trennzeichen behandelt wird.“

„Wieder einmal scheint alles klar zu sein. Ich kann diesen Code vielleicht nicht sofort alleine schreiben, aber ich verstehe, was hier vor sich geht.“

„Ausgezeichnet, dann gehen wir davon aus, dass Sie das Thema beherrschen.“