1. Будова класу String
Сьогодні розмова піде про клас String
. Клас String — найпопулярніший клас у Java після типу int. Він використовується скрізь і має купу корисних методів, які варто знати.
Клас String
— це єдиний клас, крім примітивних типів, літерали якого можна використовувати в операторах switch
; компілятор в особливий спосіб обробляє додавання рядків і об'єктів; об'єкти String
в особливий спосіб зберігаються в пам'яті. Клас String
— дійсно особливий клас.
Крім того, клас String
має купу класів-сателітів, які спрощують роботу з рядками в Java. Коли ви все це вивчите, ви зможете легко робити багато речей. Ну а почнемо ми з найголовнішого — з будови класу String
.
Масив символів
Клас String
насправді влаштований дуже просто: він містить масив символів (char), де зберігаються всі символи рядка. Отак, наприклад, зберігається слово «Привіт»:
Насправді все так, але трохи не так. Оскільки клас String
дуже важливий, у ньому використовується дуже багато оптимізацій, і дані в ньому зберігаються не у вигляді масиву символів, а просто у вигляді масиву байтів.
2. Методи класу String
Клас String
має дуже багато методів: самих лише конструкторів 18 штук! Тому ми наведемо тільки найважливіші методи.
Методи | Опис |
---|---|
|
Повертає кількість символів у рядку |
|
Перевіряє, чи рядок є порожнім |
|
Перевіряє, чи рядок містить тільки пробіли або керівні символи (tab, enter тощо) |
|
Повертає символ, який знаходиться в рядку на позиці з номером index |
|
Повертає масив символів (копію), з яких складається рядок |
|
Перетворює рядок на набір байтів і повертає масив байтів |
|
Розділяє рядок на кілька підрядків |
|
Склеює в один рядок кілька підрядків |
|
Поміщає рядок у пул StringPool |
Докладну інформацію про конструктори див. у статті «Навіщо потрібен конструктор?»
Спробуймо написати програму, що перетворює шлях до файлу у форматі ОС Unix на формат, який використовується в ОС Windows. В ОС Unix роздільником директорій є символ /
, а в ОС Windows — символ \
.
Спосіб 1 — використання масиву символів (char)
Код | Примітки |
---|---|
|
Створення об'єкта Scanner Читання рядка з консолі Перетворення рядка на масив символів Цикл по символах Якщо символ дорівнює / ,замінити його на \ . Не забуваємо про екранування.Створюємо новий рядок на основі масиву символів. Виводимо рядок на екран. |
Спосіб 2 — використання методів split()
і join()
:
Код | Примітки |
---|---|
|
Створення об'єкта Scanner Читання рядка з консолі Перетворення рядка на масив рядків. Як роздільник використовується символ / (дві додаткові скісні риски — це результат подвійного екранування).Об'єднуємо всі рядки з масиву рядків; як роздільник використовується символ \ (ми бачимо його екранованим).Виводимо рядок на екран. |
Спосіб 3 — використання методу replace(char oldChar, char newChar)
:
Код | Примітки |
---|---|
|
Створення об'єкта Scanner Читання рядка з консолі Просто замінюємо один символ на другий (другий символ екрановано) Виводимо рядок на екран. |
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ