Керування рядками, функції для роботи з рядками Java. Частина 1 Продовжуємо вивчення рядків Java. Основи роботи з рядками можна переглянути в уроці «Рядки в Java».
Функції
Основні функції
Методи для порівняння рядків
КласString
містить методи для порівняння рядків та частин рядків. Наступна таблиця описує ці методи: Наступна програма використовує метод regionMatches
для знаходження рядків в іншому рядку: Програма виведе Eggs
. Програма пробігає по рядку символ за символом, кожного символу програма викликає метод regionMatches
, передаючи йому позицію символу, для пошуку рядка findMe
.
Клас StringBuilder
Об'єкти типуStringBuilder
відрізняються від об'єктів типу String
тим, що можуть бути змінені. По суті вони являють собою масиви змінної довжини, що містять послідовність символів. Довжина та зміст послідовності можуть бути змінені викликом відповідних методів. StringBuilder
необхідно використовувати у випадках, коли це допоможе спростити код (приклад нижче) або якщо це необхідно для кращої продуктивності. Якщо вам необхідно поєднати велику кількість рядків, використання StringBuilder
буде більш ефективним.
Length та Capacity
КласStringBuilder
як і клас String
має метод length()
, який повертає довжину послідовності символів об'єкта. На відміну від рядків, в StringBuilder
, крім довжини є capacity
кількість символів під яке виділена пам'ять. Місткість (capacity), що повертається методом capacity()
, завжди більша або дорівнює довжині рядка (зазвичай більше) і автоматично буде збільшена при необхідності. Наприклад, наступний код:
StringBuilder sb = new StringBuilder();
sb.append("Greetings");
створить string builder
довжиною 9 символів і ємністю 16: Клас StringBuilder
містить кілька методів, що відносяться до довжини та ємності, яких немає в класі String
: Деякі операції (наприклад, append()
, insert()
, або setLength()
) можуть збільшити довжину послідовності символів в stringbuilder
'е, так що довжина може виявитися більшою за поточну ємність. Коли це відбувається, ємність автоматично збільшується.
ФункціїStringBuilder
Основні функції StringBuilder
, яких немає String
: append()
і insert()
, які перевантажені прийому різного типу даних. Кожен конвертує аргумент у рядок і додає його до рядка stringbuilder
'а. Метод append
завжди додає символи до кінця існуючої послідовності, тоді як метод insert
додає символи у вказане місце. Деякі методи класу StringBuilder
. Ви можете використовувати будь-який метод класу String
на об'єкті класу StringBuilder
, попередньо сконвертувавши його в рядок методом toString()
. Потім із рядка можна знову зробити stringbuilder
, використовуючи конструктор: StringBuilder(String str)
.
приклад
ПрограмаStringDemo
, яку ми розглядали в попередніх уроках Java - приклад того, коли використання StringBuilder
замість String
робить програму простіше. StringDemo
перевертає паліндром: Програма виведе:
doT saw I was toD
Для того щоб перевернути термін програма спочатку конвертує рядок у масив символів (перший цикл), далі перевертає масив і назад конвертує масив у рядок. Якщо ви конвертуєте рядок palindrome в stringbuilder
, ви можете використовувати метод reverse()
класу StringBuilder
. Код стане чистішим і простішим за читання: Висновок:
doT saw I was toD
Зверніть увагу, що в функцію println()
ми передаємо StringBuilder
:
System.out.println(sb);
Метод sb.toString()
буде неявно викликаний, як і будь-якого іншого об'єкта, переданого в println()
. Посилання на першоджерело: Керування рядками, функції для роботи з рядками Java. Частина 2