1. Порівняння рядків
Порівняння — це одна з найпопулярніших операцій із рядками. Клас String має понад десять різних методів для порівняння рядків між собою. Далі ми розглянемо вісім основних методів.
| Методи | Опис |
|---|---|
|
Рядки вважаються однаковими (рівними), якщо всі їхні символи збігаються. |
|
Порівнює рядки, ігноруючи регістр (розмір) літер. |
|
Порівнює рядки лексикографічно. Повертає: 0, якщо рядки однакові; число менше за нуль, якщо поточний рядок менший за рядок-параметр; число більше за нуль, якщо поточний рядок більший за рядок-параметр. |
|
Порівнює рядки лексикографічно, ігноруючи регістр літер. Повертає: 0, якщо рядки однакові; число менше за нуль, якщо поточний рядок менший за рядок-параметр; число більше за нуль, якщо поточний рядок більший за рядок-параметр. |
|
Порівнює частини рядків. |
|
Перевіряє, чи починається поточний рядок із підрядка prefix. |
|
Перевіряє, чи закінчується поточний рядок підрядком suffix. |
Припустімо, нам потрібно написати програму, яка просить користувача ввести шлях до файлу й перевіряє, що це за файл, за розширенням його імені. Код такої програми матиме такий вигляд:
| Код | Примітки |
|---|---|
|
Створення об'єкта ScannerЧитання рядка з консолі Перевірка, чи закінчується рядок path заданим підрядком |
2. Пошук підрядків
Друга за популярністю операція після порівняння рядків — це пошук одного рядка в іншому. Для цього клас String теж має кілька методів:
| Методи | Опис |
|---|---|
|
Шукає рядок str в поточному рядку. Повертає індекс першого символу знайденого рядка. |
|
Шукає рядок str в поточному рядку, починаючи із символу з індексом index. Повертає індекс першого символу знайденого рядка. |
|
Шукає рядок str в поточному рядку, починаючи з кінця. Повертає індекс першого символу знайденого рядка (тобто індекс останнього входження). |
|
Шукає рядок str в поточному рядку ззаду наперед, починаючи із символу з індексом index; повертає індекс першого символу знайденого рядка (тобто індекс останнього входження). |
|
Перевіряє, чи збігається поточний рядок із шаблоном, який задано регулярним виразом. |
Методи indexOf(String) і indexOf (String, index) часто використовуються разом. Перший дає змогу знайти перше входження переданого підрядка в поточному рядку. А другий метод знаходить друге, третє і т. д. входження завдяки тому, що пропускає перші index символів.
Припустімо, маємо таку URL-адресу: «https://domen.com/about/reviews», і хочемо замінити ім'я домену на javarush.com. Домени в URL-адресах можуть бути різними, але ми можемо виділити їх за такими ознаками:
- Імені домену передують дві скісні риски
// - Після імені домену ставиться одна скісна риска
/
Цю програму можна написати отак:
| Код | Примітки |
|---|---|
|
Створення об'єкта Scanner Читання рядка з консолі Отримуємо індекс першого входження рядка //Отримуємо індекс першого входження рядка /, але шукаємо тільки після символів //.Отримуємо рядок від початку і закінчуючи символами //Отримуємо рядок від / і до кінця.Склеюємо рядки і отримуємо новий домен. |
Методи lastIndexOf(String) і lastIndexOf(String, index) працюють так само, тільки пошук ведеться у зворотному напрямку, починаючи з кінця рядка.
3. Створення підрядків
Наступною за популярністю після порівняння рядків і пошуку підрядків є операція отримання підрядка з рядка. У попередньому прикладі ви бачили виклик методу substring(), який повертав частину рядка.
Наводимо 8 методів отримання підрядків із поточного рядка:
| Методи | Опис |
|---|---|
|
Повертає підрядок, визначений інтервалом символів beginIndex..endIndex. |
|
Повторює поточний рядок n разів. |
|
Повертає новий рядок, де символ oldChar замінено на символ newChar. |
|
Замінює в поточному рядку підрядок, визначений регулярним виразом, на заданий підрядок. |
|
Замінює в поточному рядку всі підрядки, визначені регулярним виразом, на заданий підрядок. |
|
Перетворює всі літери в рядку на малі. |
|
Перетворює всі літери в рядку на великі. |
|
Видаляє всі пробіли на початку та в кінці рядка. |
Короткий опис цих методів:
Метод substring(int beginIndex, int endIndex)
Метод substring повертає новий рядок, який містить символи поточного рядка починаючи із символу з індексом beginIndex і закінчуючи символом до індексу endIndex. Не забувайте, що в Java інтервали не включають елементи з кінцевим індексом, тобто символ з індексом endIndex у новий рядок не входить. Приклади:
| Код | Результат |
|---|---|
|
|
|
|
|
|
|
|
Якщо параметр endIndex не вказано (а так можна), вибирається підрядок починаючи від символу beginIndex і до кінця рядка.
Метод repeat(int n)
Метод repeat просто повторює поточний рядок n разів. Приклад:
| Код | Результат |
|---|---|
|
|
|
|
|
|
|
|
Метод replace(char oldChar, char newChar)
Метод replace() повертає новий рядок, де всі символи oldChar замінено на символ newChar. Довжина рядка під час цієї операції не змінюється. Приклад:
| Код | Результат |
|---|---|
|
|
|
|
|
|
|
|
Методи replaceFirst() і replaceAll()
Метод replaceAll() замінює всі входження підрядка, переданого в першому параметрі, на підрядок, переданий у другому параметрі. Метод replaceFirst() замінює перше входження підрядка, переданого в першому параметрі, на підрядок, переданий у другому параметрі. Підрядок, який потрібно замінити, визначається регулярним виразом. Регулярні вирази ми розглядатимемо в квесті Java Multithreading.
Приклади:
| Код | Результат |
|---|---|
|
|
|
|
|
|
|
|
Методи toLowerCase() і toUpperCase()
З цими методами ви познайомилися ще тоді, коли тільки починали вивчати методи класу String.
Метод trim()
Метод trim() видаляє пробіли на початку та в кінці рядка. Пробіли всередині рядка ігноруються. Приклади:
| Код | Результат |
|---|---|
|
|
|
|
|
|
|
|
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ