– Szia Amigo!

– Amennyire én tudom, Rishi már mesélt neked a reguláris kifejezésekről.

– Igen, nagyon érdekes volt.

"Remek, most elmondom neked, hogyan használj reguláris kifejezéseket a Strings kezeléséhez."

"Kezdjük a legegyszerűbb kérdéssel:"

1) Hogyan ellenőrizhetem, hogy egy karakterlánc egyezik-e a reguláris kifejezés által megadott mintával?

"Van egy matches metódus erre. Átadsz egy reguláris kifejezést tartalmazó Stringet, és a metódus igaz vagy hamis értéket ad vissza."

Mód) Példák
boolean matches(String regex)
String s = "Good news, everyone!";
Boolean test = s.matches("news\\.*");
Eredmény:

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

2) Hogyan cserélhetem ki az összes megfelelő részstringet különböző karakterláncokra?

– Erre két módszer létezik.

"A changeAll metódus egy részkarakterlánc minden előfordulását lecseréli egy másik karakterláncra."

"A changeFirst metódus az átadott részkarakterlánc első előfordulását egy megadott karakterláncra cseréli."

Mód) Példák
String replaceAll(String regex, String replacement)
String s = "Good news, everyone!";
String s2 = s.replaceAll ("e\\.","EX");
Eredmény:

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

s2 == "Good nEXs, everyone!";

3) Hogyan oszthatok fel egy karakterláncot részekre?

"Ehhez a split módszert használjuk, amely egy elválasztó maszkot vesz igénybe:"

Mód) Példák
String[] split(String regex)
String s = "Good news everyone!";
String[] ss = s.split("ne");
System.out.println(Arrays.toString(ss));
Eredmény (három karakterláncból álló tömb):

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

"A StringTokenenizer osztály egy másik módja annak, hogy egy karakterláncot részekre bontsanak ."

"Ez az osztály nem használ reguláris kifejezéseket. Ehelyett egyszerűen át kell adnia egy karakterláncot, amely egy sor elválasztójelet tartalmaz. Ennek a megközelítésnek az az előnye, hogy nem bontja egyszerre darabokra a teljes karakterláncot, hanem lassan mozog az elejétől a végéig."

"Az osztály egy konstruktorból és két metódusból áll. A felbontandó karakterláncot át kell adni a konstruktornak, valamint egy karakterláncot, amely a határoló karaktereket tartalmazza."

A nextToken metódus a következő tokent (alkarakterláncot) adja vissza.

A hasMoreTokens() metódus true értéket ad vissza, ha még mindig vannak olyan részkarakterláncok, amelyeket még nem adtunk vissza.

Mód) Példák
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);
}
Képernyő kimenet:

Good
ws
v
ryo
!

"Ne feledje, hogy a StringTokenenizer konstruktornak átadott második karakterlánc bármely karaktere határolóként kezelendő."

"Még egyszer minden világosnak tűnik. Lehet, hogy nem tudom azonnal megírni ezt a kódot egyedül, de értem, mi folyik itt."

– Kiváló, akkor feltételezzük, hogy elsajátította a témát.