"Hei, Amigo!"

"Så vidt jeg vet har Rishi allerede fortalt deg om vanlige uttrykk."

— Ja, det var veldig interessant.

"Flott, nå skal jeg fortelle deg om bruk av regulære uttrykk for å jobbe med strenger."

"La oss starte med det enkleste spørsmålet:"

1) Hvordan sjekker jeg om en streng samsvarer med mønsteret spesifisert av et regulært uttrykk?

"Det er en samsvarsmetode for dette. Du sender en streng som inneholder et regulært uttrykk, og metoden returnerer sant eller usant."

Metode(r) 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 samsvarende understrenger med forskjellige strenger?

"Det er to metoder for dette."

" ReplaceAll- metoden erstatter alle forekomster av en understreng med en annen streng."

" ReplaceFirst- metoden erstatter den første forekomsten av en bestått delstreng med en spesifisert streng."

Metode(r) 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 i deler?

"For dette har vi splittmetoden, som tar en avgrensende maske:"

Metode(r) Eksempel(r)
String[] split(String regex)
String s = "Good news everyone!";
String[] ss = s.split("ne");
System.out.println(Arrays.toString(ss));
Resultat (en rekke med tre strenger):

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

" StringTokenizer- klassen er en annen måte å dele en streng i deler på ."

"Denne klassen bruker ikke regulære uttrykk. I stedet sender du ganske enkelt inn en streng som inneholder et sett med skilletegn. Fordelen med denne tilnærmingen er at den ikke bryter hele strengen i stykker på en gang, i stedet beveger den seg sakte fra begynnelsen til slutten."

"Klassen består av en konstruktør og to metoder. Du må sende strengen vi bryter fra hverandre inn i konstruktøren, sammen med en streng som inneholder settet med skilletegn."

NextToken-metoden returnerer neste token (understreng).

HasMoreTokens()-metoden returnerer true hvis det fortsatt er delstrenger som ikke er returnert ennå.

Metode(r) 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);
}
Skjermutgang:

Good
ws
v
ryo
!

"Merk at ethvert tegn i den andre strengen som sendes til StringTokenizer- konstruktøren, behandles som et skilletegn."

"Nok en gang virker alt klart. Jeg kan kanskje ikke skrive denne koden helt alene med en gang, men jeg forstår hva som skjer her."

"Utmerket, da vil vi anta at du har mestret temaet."