"Hej, Amigo!"

"Så vidt jeg ved, har Rishi allerede fortalt dig om regulære udtryk."

"Ja, det var meget interessant."

"Fint, nu vil jeg fortælle dig om at bruge regulære udtryk til at arbejde med strenge."

"Lad os starte med det enkleste spørgsmål:"

1) Hvordan kontrollerer jeg, om en streng matcher det mønster, der er angivet af et regulært udtryk?

"Der er en match-metode til dette. Du sender en streng, der indeholder et regulært udtryk, og metoden returnerer sand eller falsk."

Metoder) Eksempel(r)
boolean matches(String regex)
String s = "Good news, everyone!";
Boolean test = s.matches("news\\.*");
Resultat:

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

2) Hvordan erstatter jeg alle matchende understrenge med forskellige strenge?

"Der er to metoder til dette."

" ReplaceAll- metoden erstatter alle forekomster af en understreng med en anden streng."

" ReplaceFirst- metoden erstatter den første forekomst af en bestået understreng med en specificeret streng."

Metoder) Eksempel(r)
String replaceAll(String regex, String replacement)
String s = "Good news, everyone!";
String s2 = s.replaceAll ("e\\.","EX");
Resultat:

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

s2 == "Good nEXs, everyone!";

3) Hvordan deler jeg en streng op i dele?

"Til dette har vi splitmetoden, som tager en afgrænsende maske:"

Metoder) Eksempel(r)
String[] split(String regex)
String s = "Good news everyone!";
String[] ss = s.split("ne");
System.out.println(Arrays.toString(ss));
Resultat (en række af tre strenge):

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

" StringTokenizer- klassen er en anden måde at opdele en streng i dele ."

"Denne klasse bruger ikke regulære udtryk. I stedet sender du blot en streng, der indeholder et sæt afgrænsningstegn. Fordelen ved denne fremgangsmåde er, at den ikke brækker hele strengen i stykker på én gang, i stedet bevæger den sig langsomt fra begyndelsen til slutningen."

"Klassen består af en konstruktør og to metoder. Du skal sende den streng, vi deler fra hinanden, i konstruktøren sammen med en streng, der indeholder sættet af afgrænsende tegn."

NextToken-metoden returnerer det næste token (understreng).

HasMoreTokens()-metoden returnerer sand, hvis der stadig er understrenge, der ikke er blevet returneret endnu.

Metoder) Eksempel(r)
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);
}
Skærmudgang:

Good
ws
v
ryo
!

"Bemærk, at ethvert tegn i den anden streng, der sendes til StringTokenizer- konstruktøren, behandles som et skilletegn."

"Igen virker alt klart. Jeg er måske ikke i stand til at skrive denne kode helt alene med det samme, men jeg forstår, hvad der foregår her."

"Fremragende, så går vi ud fra, at du har styr på emnet."