"Hallo Amigo!"

"Voor zover ik weet, heeft Rishi je al verteld over reguliere expressies."

"Ja, het was heel interessant."

"Geweldig, nu zal ik je vertellen over het gebruik van reguliere expressies om met Strings te werken."

"Laten we beginnen met de eenvoudigste vraag:"

1) Hoe controleer ik of een tekenreeks overeenkomt met het patroon dat wordt gespecificeerd door een reguliere expressie?

"Hiervoor is een matchmethode. U geeft een string door die een reguliere expressie bevat en de methode retourneert waar of onwaar."

Methode(n) voorbeeld(en)
boolean matches(String regex)
String s = "Good news, everyone!";
Boolean test = s.matches("news\\.*");
Resultaat:

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

2) Hoe vervang ik alle overeenkomende substrings door verschillende strings?

"Hiervoor zijn twee methoden."

"De methode replaceAll vervangt alle exemplaren van een subtekenreeks door een andere tekenreeks."

"De methode replaceFirst vervangt de eerste keer dat een doorgegeven subtekenreeks voorkomt door een opgegeven tekenreeks."

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

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

s2 == "Good nEXs, everyone!";

3) Hoe splits ik een string in delen?

"Hiervoor hebben we de split-methode, waarvoor een begrenzingsmasker nodig is:"

Methode(n) voorbeeld(en)
String[] split(String regex)
String s = "Good news everyone!";
String[] ss = s.split("ne");
System.out.println(Arrays.toString(ss));
Resultaat (een array van drie strings):

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

"De klasse StringTokenizer is een andere manier om een ​​string in delen te splitsen ."

"Deze klasse gebruikt geen reguliere expressies. In plaats daarvan geef je gewoon een string door die een set scheidingstekens bevat. Het voordeel van deze aanpak is dat de hele string niet in één keer in stukken wordt gebroken, maar langzaam beweegt van het begin tot het einde."

"De klasse bestaat uit een constructor en twee methoden. Je moet de string die we opsplitsen doorgeven aan de constructor, samen met een string die de set begrenzende tekens bevat."

De methode nextToken retourneert het volgende token (subtekenreeks).

De methode hasMoreTokens() retourneert true als er nog subtekenreeksen zijn die nog niet zijn geretourneerd.

Methode(n) voorbeeld(en)
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);
}
Schermuitvoer:

Good
ws
v
ryo
!

"Merk op dat elk teken in de tweede String die aan de StringTokenizer- constructor wordt doorgegeven, wordt behandeld als een scheidingsteken."

"Nogmaals, alles lijkt duidelijk. Ik kan deze code misschien niet meteen helemaal zelf schrijven, maar ik begrijp wat hier aan de hand is."

"Uitstekend, dan gaan we ervan uit dat je het onderwerp onder de knie hebt."