"Hej, Amigo!"

"Såvitt jag vet har Rishi redan berättat om reguljära uttryck."

— Ja, det var väldigt intressant.

"Bra, nu ska jag berätta om hur man använder reguljära uttryck för att arbeta med strängar."

"Låt oss börja med den enklaste frågan:"

1) Hur kontrollerar jag om en sträng matchar mönstret som anges av ett reguljärt uttryck?

"Det finns en matchningsmetod för detta. Du skickar en sträng som innehåller ett reguljärt uttryck, och metoden returnerar sant eller falskt."

Metod(er) Exempel
boolean matches(String regex)
String s = "Good news, everyone!";
Boolean test = s.matches("news\\.*");
Resultat:

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

2) Hur ersätter jag alla matchande delsträngar med olika strängar?

"Det finns två metoder för detta."

" Metoden replaceAll ersätter alla förekomster av en delsträng med en annan sträng."

" Metoden replaceFirst ersätter den första förekomsten av en godkänd delsträng med en specificerad sträng."

Metod(er) Exempel
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) Hur delar jag en sträng i delar?

"För detta har vi splitmetoden, som tar en avgränsande mask:"

Metod(er) Exempel
String[] split(String regex)
String s = "Good news everyone!";
String[] ss = s.split("ne");
System.out.println(Arrays.toString(ss));
Resultat (en matris med tre strängar):

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

" StringTokenizer -klassen är ett annat sätt att dela upp en sträng i delar ."

"Den här klassen använder inte reguljära uttryck. Istället skickar du helt enkelt in en sträng som innehåller en uppsättning avgränsare. Fördelen med detta tillvägagångssätt är att den inte bryter hela strängen i bitar på en gång, utan flyttar sig långsamt från början till slutet."

"Klassen består av en konstruktor och två metoder. Du måste skicka strängen vi bryter isär till konstruktorn, tillsammans med en sträng som innehåller uppsättningen avgränsande tecken."

NextToken-metoden returnerar nästa token (delsträng).

Metoden hasMoreTokens() returnerar true om det fortfarande finns delsträngar som inte har returnerats ännu.

Metod(er) Exempel
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ärmutgång:

Good
ws
v
ryo
!

"Observera att alla tecken i den andra strängen som skickas till StringTokenizer -konstruktorn behandlas som en avgränsare."

"Än en gång verkar allt klart. Jag kanske inte kan skriva den här koden helt själv direkt, men jag förstår vad som händer här."

"Utmärkt, då antar vi att du behärskar ämnet."