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()
видаляє пробіли на початку та в кінці рядка. Пробіли всередині рядка ігноруються. Приклади:
Код | Результат |
---|---|
|
|
|
|
|
|
|
|
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ