JavaRush /Курсхо /All lectures for TG purposes /Кор бо сатрҳо дар Java

Кор бо сатрҳо дар Java

All lectures for TG purposes
Сатҳи , Дарс
дастрас

1. Қиёси сатрҳо

Қиёс - яке аз оддитарин чизҳо бо сатрҳо аст. Класи String зиёда аз даҳ усули гуногун дорад, ки барои муқоисаи сатрҳо истифода мешаванд. Мо ҳафт усули асосиро назар мекунем.

Методҳо Тавсиф
boolean equals(String str)
Сатрҳо якхела ҳисобида мешаванд, агар тамоми символҳои онҳо мувофиқат кунанд.
boolean equalsIgnoreCase(String str)
Сатрҳоро муқоиса мекунад, ҳангоми бепарвоӣ ба регистр
int compareTo(String str)
Сатрҳоро лексикографӣ муқоиса мекунад. 0 мегардонад, агар сатрҳо якхела бошанд. Чӣ аз сифр камтар бошад, агар сатри ҳозира камтар бошад аз сатр-параметр. Чӣ аз сифр бештар бошад, агар сатри ҳозира калонтар бошад аз сатр-параметр.
int compareToIgnoreCase(String str)
Сатрҳоро лексикографӣ муқоиса мекунад, регистрро бепарвоӣ нишон медиҳад. 0 мегардонад, агар сатрҳо якхела бошанд. Чӣ аз сифр камтар бошад, агар сатри ҳозира камтар бошад аз сатр-параметр. Чӣ аз сифр бештар бошад, агар сатри ҳозира калонтар бошад аз сатр-параметр.
boolean regionMatches(int toffset, String str, int offset, int len)
Қисмҳои сатрҳоро муқоиса мекунад
boolean startsWith(String prefix)
Мегӯяд, ки сатри ҳозира бо сатр оғоз мешавад prefix
boolean endsWith(String suffix)
Мегӯяд, ки сатри ҳозира бо сатр анҷом меёбад suffix

Мисол, агар шумо хоҳед ки барномае нависед, ки аз корбар матни роҳ ба файлро дархост мекунад ва санҷед, ки ин барои чӣ файл аст аз рӯйи васеъ гардидани он. Пас коди барнома метавонад чунин бошад:

Код Эзоҳҳо
Scanner console = new Scanner(System.in);
String path = console.nextLine();

if (path.endsWith(".jpg") || path.endsWith(".jpeg"))
{
   System.out.println("Ин Jpeg аст!");
}
else if (path.endsWith(".htm") || path.endsWith(".html"))
{
   System.out.println("Ин саҳифаи HTML аст");
}
else if (path.endsWith(".doc") || path.endsWith(".docx"))
{
   System.out.println("Ин ҳуҷҷати Word аст");
}
else
{
   System.out.println("Формати номаълум");
}
Сохтани объекти Scanner
Хондани сатр аз консол

Санҷидан, ки сатри path бо сатрҳои муайяншуда анҷом меёбад


2. Ҷустуҷӯи зерсатрҳо

Дувумин амали машҳур пас аз муқоисаи сатрҳо - ҷустуҷӯи як сатр дар дигараш. Барои ин ҳам, класи String якчанд методҳо дорад:

Методҳо Тавсиф
int indexOf(String str)
Ҳамсояро str дар сатри ҳозира ҷустуҷӯ мекунад. Индекси аввалин символи ҳамсарро бармегардонад.
int indexOf(String str, int index)
Ҳамсояро str дар сатри ҳозира ҷустуҷӯ мекунад, бо гузариши index аз аввалин символҳо. Индекси вуруди ёфташуда бармегардонад.
int lastIndexOf(String str)
Ҳамсояро str дар сатри ҳозира аз охир ба аввали ҷустуҷӯ мекунад. Индекси аввалин вуруди ёфташуда бармегардонад.
int lastIndexOf(String str, int index)
Ҳамсояро str дар сатри ҳозира аз охир ба аввали ҷустуҷӯ мекунад, бо гузариши index аз аввалин символҳо.
boolean matches(String regex)
Санҷидан, ки сатри ҳозира бо намунае, ки бо ифодаи муқаррарӣ муайян карда шудааст, мувофиқ аст.

Методҳои indexOf(String) ва indexOf(String, index) аксар вақт дар якҷоягӣ истифода мешаванд. Аввалин имкон медиҳад, ки аввалин вуруди зерсатр дар сатри ҳозираи ҷустуҷӯ ёбад. Ва методи дувум имкон медиҳад, ки дувум, сеюм ва ғ. вурудҳоро бо гузариши аввалин символҳои index пайдо кунад.

Фарз кунем, ки мо url дорем, ки чунин аст: «https://domen.com/about/reviews», ва мо мехоҳем номи доменро ба javarush.com иваз кунем. Доменҳо дар урлҳо гуногун буда метавонанд, аммо мо медонем, ки:

  • Пеш аз номи домен ду накли // меоянд
  • Пас аз номи домен як накли / меояд

Инчунин метавонад коди чунин барнома бошад:

Код Эзоҳҳо
Scanner console = new Scanner(System.in);
String path = console.nextLine();

int index = path.indexOf("//");
int index2 = path.indexOf("/", index + 2);

String first = path.substring(0, index + 2);
String last = path.substring(index2);

String result = first + "javarush.com" + last;
System.out.println(result);
Сохтани объекти Scanner
Хондани сатр аз консол

Гирифтани индекси аввалин даромади сатр //
Гирифтани индекси аввалин даромади сатр /, аммо ҷустуҷӯ пас аз символҳои //.
Гирифтани сатр аз аввал ва бо символҳои // ба итмом мерасад.
Гирифтани сатр аз / ва то охир.

Сатрҳоро ва домени навро якҷоя мекунем.

Методҳои lastIndexOf(String) ва lastIndexOf(String, index) низ ҳамон тавр амал мекунанд, аммо ҷустуҷӯ аз охири сатр ба аввал анҷом дода мешавад.



3. Сохтани зерсатрҳо

Ғайр аз муқоиса бо сатрҳо ва ҷустуҷӯи зерсатрҳо, як амали машҳури дигар низ вуҷуд дорад - гирифтани зерсатр аз сатр. Дар мисоли қаблӣ шумо дидед, ки методи substring() барои баргардонидани қисми сатр истифода мешавад.

Инҷо рӯйхати 8 методи гирифтани зерсатрҳо аз сатри ҳозира:

Методҳо Тавсиф
String substring(int beginIndex, int endIndex)
Зерсатрро бармегардонад, ки бо истифодабарии интервали символҳои beginIndex..endIndex муайян шудааст.
String repeat(int count)
Сатри ҳозираро count маротиба такрор мекунад
String replace(char oldChar, char newChar)
Сатри навро бармегардонад: символи oldChar бо символи newChar иваз мешавад.
String replaceFirst(String regex, String replacement)
Зерсатрро дар сатри ҳозира бо истифодабарии ифодаи муқаррарӣ иваз мекунад.
String replaceAll(String regex, String replacement)
Ҳамаи зерсатрҳоро, ки бо ифодаи муқаррарӣ мувофиқанд, дар сатри ҳозира иваз мекунад.
String toLowerCase()
Сатрро ба регистри поёнӣ иваз мекунад
String toUpperCase()
Сатрро ба регистри болоӣ иваз мекунад
String trim()
Ҳамаи фосилаҳоро дар аввали ва охири сатр тоза мекунад

Инҷо тавсифоти кӯтоҳи методҳои мавҷуда:

Методи substring(int beginIndex, int endIndex)

Методи substring сатри навро бармегардонад, ки аз символҳои сатри ҳозира иборат аст, вай аз символи бо рақами beginIndex оғоз мешавад ва ба endIndex поён меёбад. Чӣ тавре ки дар ҳама интервалҳо имрӯз Java, символи рақами endIndex ба интервал дохил намешавад. Мисолҳо:

Код Натиҷа
"П»ривет".substring(0, 3);
"П»"
рив»ет".substring(1, 4);
"рив»"
рив»ет".substring(1, 6);
"рив»ет"
рив»ет".substring(1);
"рив»ет"

Агар параметри endIndex нишон дода нашавад (ин тавр метавонад), зерсатр аз символи beginIndex то охири сатр гирифта мешавад.

Методи repeat(int n)

Методи repeat сатри ҳозираро n маротиба такрор мекунад. Мисол:

Код Натиҷа
"Привет".repeat(3);
"ПриветПриветПривет"
"Привет".repeat(2);
"ПриветПривет"
"Привет".repeat(1);
"Привет"
"Привет".repeat(0);
""

Методи replace(char oldChar, char newChar)

Методи replace() сатри навро бармегардонад, ки дар он тамоми символҳои oldChar ба символи newChar иваз мешаванд. Дарозии сатр дар ин ҳангом тағир намеёбад. Мисол:

Код Натиҷа
"Привет".replace('Я', 'я');
"Привет"
"Привет".replace('т', 'д');
"Привед"
"Привет".replace('и', 'е');
"Превет"
"Привет".replace('и', 'ы');
"Прывет"

Методҳои replaceFirst() ва replaceAll()

Методи replaceAll() ҳамаи вурудҳои як зерсатрро ба дигараш иваз мекунад. Методи replaceFirst() аввалин воридшудаи зеринро ба зерсатр иваз мекунад. Сатр, ки иваз мешавад, бо ифодаи муқаррарӣ муайян карда мешавад. Мо ифодаҳои муқаррариро дар квестери Java Multithreading дида мебароем.

Мисолҳо:

Код Натиҷа
"Good news everyone!".replaceAll("e.", "EX");
"Good nEXs EXEXyonEX"
"Good news everyone!".replaceAll("o.", "-o-");
"G-o-d news every-o-e!"
"Good news everyone!".replaceFirst("e.", "EX");
"Good nEXs everyone!"
"Good news everyone!".replaceFirst("o.", "-o-");
"G-o-d news everyone!"

Методҳои toLowerCase() ва toUpperCase()

Бо ин методҳо имрӯзҳо ҳангоми омӯзиши аввалин дафъа методҳои класи String шинос шуда будем.

Методи trim()

Методи trim() фосилаҳоро аз аввали ва охири сатр тоза мекунад. Фосилаҳо дар дохили сатр нобаланд карда намешаванд. Мисолҳо:

Код Натиҷа
"     ".trim();
""
"Привет".trim();
"Привет"
" Привет\n как дела?\n   ".trim();
"Привет\n как дела?\n"
"  Пароль\n   \n ".trim();
"Пароль\n   \n"

Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION