„Здрасти, Амиго!“

— Доколкото знам, Риши вече ти е говорил за регулярните изрази.

— Да, беше много интересно.

„Страхотно, сега ще ви разкажа за използването на регулярни изрази за работа с низове.“

„Нека започнем с най-простия въпрос:“

1) Как да проверя дали даден низ съответства на шаблона, определен от регулярен израз?

„Има метод за съвпадение за това. Подавате низ, съдържащ регулярен израз, и методът връща true or false.“

Метод(и) Примери)
boolean matches(String regex)
String s = "Good news, everyone!";
Boolean test = s.matches("news\\.*");
Резултат:

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

2) Как да заменя всички съвпадащи поднизове с различни низове?

— Има два метода за това.

„ Методът replaceAll замества всички срещания на подниз с друг низ.“

„ Методът replaceFirst замества първото появяване на предаден подниз с определен низ.“

Метод(и) Примери)
String replaceAll(String regex, String replacement)
String s = "Good news, everyone!";
String s2 = s.replaceAll ("e\\.","EX");
Резултат:

s2 == "Good nEXs EXEXyonEX";
String replaceFirst(String regex, String replacement)
String s = "Good news, everyone!";
String s2 = s.replaceFirst("e\\.","EX");
Резултат:

s2 == "Good nEXs, everyone!";

3) Как да разделя низ на части?

„За това имаме метода на разделяне, който приема разделителна маска:“

Метод(и) Примери)
String[] split(String regex)
String s = "Good news everyone!";
String[] ss = s.split("ne");
System.out.println(Arrays.toString(ss));
Резултат (масив от три низа):

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

„ Класът StringTokenizer е друг начин за разделяне на низ на части .“

„Този ​​клас не използва регулярни изрази. Вместо това просто предавате низ, съдържащ набор от разделители. Предимството на този подход е, че не разбива целия низ на части наведнъж, instead of това бавно се движи от от началото до края."

„Класът се състои от конструктор и два метода. Трябва да предадете низа, който разбиваме, в конструктора, заедно с низ, съдържащ набор от разделителни знаци.“

Методът nextToken връща следващия токен (подниз).

Методът hasMoreTokens() връща true, ако все още има поднизове, които все още не са върнати.

Метод(и) Примери)
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);
}
Изход на екрана:

Good
ws
v
ryo
!

„Имайте предвид, че всеки знак във втория низ, предаден на конструктора StringTokenizer , се третира като разделител.“

„Отново всичко изглежда ясно. Може да не мога да напиша този code сам веднага, но разбирам Howво става тук.“

„Отлично, тогава ще приемем, че сте усвоor темата.“