Фрагмент от лекция с ментор като част от курса на Codegym University. Запишете се за пълния курс.
1 Сравняване на низове
Една от най-често срещаните операции с низове е сравнението. Класът String има над десет различни метода, които се използват за сравняване на един низ с друг низ. По-долу ще разгледаме 8 от основните.
| Методи | Описание |
|---|---|
|
Низовете се считат за равни, ако всичките им символи съвпадат. |
|
Сравнява низове, като игнорира големината на буквите (игнорира дали са главни or малки) |
|
Сравнява низове, връща броя на съответстващите знаци от началото на низа. |
|
Връща броя на съвпадащите знаци от началото на низ, игнорира главни и малки букви |
|
Сравнява части от низове |
|
Проверява дали текущият низ започва с низаprefix |
|
Проверява дали текущият низ завършва с низаsuffix |
Да приемем, че искате да напишете програма, която пита потребителя за път към файл и след това проверява типа на file въз основа на неговото разширение. Кодът на такава програма може да изглежда така:
| Код | Бележки |
|---|---|
|
Създаване на Scannerобект Прочетете ред от конзолата Проверете дали низът pathзавършва с дадения низ |
2 Търсене на поднизове
След сравняването на низове, втората най-популярна операция е намирането на един низ в друг. Класът String също има няколко метода за това:
| Методи | Описание |
|---|---|
|
Търси низа strв текущия низ. Връща индекса на първия знак от първото срещане. |
|
Търси низа strв текущия низ, като пропуска първите indexзнаци. Връща индекса на събитието. |
|
Търси низа strв текущия низ, започвайки от края. Връща индекса на първото срещане. |
|
Търси низа strв текущия низ от края, като пропуска първите indexзнаци. |
|
Проверява дали текущият низ съответства на модел, определен от регулярен израз. |
Методите indexOf(String)и indexOf(String, index)често се използват в комбинация. Първият метод ви позволява да намерите първото срещане на предадения подниз в текущия низ. А вторият метод ви позволява да намерите второто, третото и т.н. срещане, като пропуснете първите индексни знаци.
Да предположим, че имаме url като " https://domain.com/about/reviews " и искаме да заменим името на домейна с " codegym.cc ". URL addressите могат да имат всяHowви различни имена на домейни, но ние знаем следното:
- Името на домейна се предхожда от две наклонени черти — „//“
- Името на домейна е последвано от една наклонена черта напред — "
/"
Ето How би изглеждал codeът за такава програма:
| Код | Бележки |
|---|---|
|
Създайте обект на скенер Прочетете ред от конзолата Вземете индекса на първото появяване на низа " //" Получаваме индекса на първото срещане на низа /, но гледаме само след срещане на знаците //. Получаваме низа от началото до края на знаците. //Получаваме низа от /до края. Свързваме низовете и новия домейн. |
Методите lastIndexOf(String)и lastIndexOf(String, index)работят по същия начин, само търсенето се извършва от края на низа към началото.
3 Създаване на поднизове
Фрагмент от лекция с ментор като част от курса на Codegym University. Запишете се за пълния курс.
В допълнение към сравняването на низове и намирането на поднизове, има още едно много популярно действие: получаване на подниз от низ. Както се случва, предишният пример ви показа substring()извикване на метод, който върна част от низ.
Ето списък от 8 метода, които връщат поднизове от текущия низ:
| Методи | Описание |
|---|---|
|
Връща подниза, определен от диапазона на индекса beginIndex..endIndex. |
|
Повтаря текущия низ n пъти |
|
Връща нов низ: замества знака oldCharсъс знакаnewChar |
|
Заменя първия подниз, определен от регулярен израз, в текущия низ. |
|
Заменя всички поднизове в текущия низ, които съответстват на регулярния израз. |
|
Преобразува низа в малки букви |
|
Преобразува низа в главни букви |
|
Премахва всички интервали в началото и края на низ |
Ето обобщение на наличните методи:
substring(int beginIndex, int endIndex)метод
Методът substringвръща нов низ, който се състои от знаци в текущия низ, започващ от знака с индекс beginIndexи завършващ на endIndex. Както при всички интервали в Java, символът с индекс endIndexне е включен в интервала. Примери:
| Код | Резултат |
|---|---|
|
|
|
|
|
|
|
|
Ако endIndexпараметърът не е посочен (което е възможно), тогава поднизът се взема от знака в beginIndex до края на низа.
repeat(int n)метод
Методът за повторение просто повтаря текущите nвремена на низа. Пример:
| Код | Резултат |
|---|---|
|
|
|
|
|
|
|
|
replace(chat oldChar, char newChar)метод
Методът replace()връща нов низ, в който всички символи oldCharса заменени със знака newChar. Това не променя дължината на низа. Пример:
| Код | Резултат |
|---|---|
|
|
|
|
|
|
|
|
replaceFirst()и replaceAll()методи
Методът replaceAll()замества всички срещания на един подниз с друг. Методът replaceFirst()замества първото появяване на предадения подниз с посочения подниз. Низът, който трябва да бъде заменен, се определя от регулярен израз. Ще се задълбочим в регулярните изрази в търсенето на Java Multithreading .
Примери:
| Код | Резултат |
|---|---|
|
|
|
|
|
|
|
|
toLowerCase() and toUpperCase()методи
Запознахме се с тези методи, когато за първи път научихме за извикването на методите на Stringкласа.
trim()метод
Методът trim()премахва начални и завършващи интервали от низ. Не докосва интервали, които са вътре в низ (т.е. не в началото or края). Примери:
| Код | Резултат |
|---|---|
|
|
|
|
|
|
|
|
GO TO FULL VERSION