JavaRush /Java блог /Random UA /Керування рядками, функції для роботи з рядками Java. Час...
articles
15 рівень

Керування рядками, функції для роботи з рядками Java. Частина 2

Стаття з групи Random UA
Керування рядками, функції для роботи з рядками Java. Частина 1 Продовжуємо вивчення рядків Java. Основи роботи з рядками можна переглянути в уроці «Рядки в Java». Керування рядками, функції для роботи з рядками Java.  Частина 2 - 1

Методи для порівняння рядків

Клас Stringмістить методи для порівняння рядків та частин рядків. Наступна таблиця описує ці методи: Керування рядками, функції для роботи з рядками Java.  Частина 2 - 2Наступна програма використовує метод regionMatchesдля знаходження рядків в іншому рядку: Керування рядками, функції для роботи з рядками Java.  Частина 2 - 3Програма виведе Eggs. Програма пробігає по рядку символ за символом, кожного символу програма викликає метод regionMatches, передаючи йому позицію символу, для пошуку рядка findMe.

Клас StringBuilder

Об'єкти типу StringBuilderвідрізняються від об'єктів типу Stringтим, що можуть бути змінені. По суті вони являють собою масиви змінної довжини, що містять послідовність символів. Довжина та зміст послідовності можуть бути змінені викликом відповідних методів. StringBuilderнеобхідно використовувати у випадках, коли це допоможе спростити код (приклад нижче) або якщо це необхідно для кращої продуктивності. Якщо вам необхідно поєднати велику кількість рядків, використання StringBuilderбуде більш ефективним.

Length та Capacity

Клас StringBuilderяк і клас Stringмає метод length(), який повертає довжину послідовності символів об'єкта. На відміну від рядків, в StringBuilder, крім довжини є capacityкількість символів під яке виділена пам'ять. Місткість (capacity), що повертається методом capacity(), завжди більша або дорівнює довжині рядка (зазвичай більше) і автоматично буде збільшена при необхідності. Керування рядками, функції для роботи з рядками Java.  Частина 2 - 4Наприклад, наступний код:
StringBuilder sb = new StringBuilder();
sb.append("Greetings");
створить string builderдовжиною 9 символів і ємністю 16: Керування рядками, функції для роботи з рядками Java.  Частина 2 - 5Клас StringBuilderмістить кілька методів, що відносяться до довжини та ємності, яких немає в класі String: Керування рядками, функції для роботи з рядками Java.  Частина 2 - 6Деякі операції (наприклад, append(), insert(), або setLength()) можуть збільшити довжину послідовності символів в stringbuilder'е, так що довжина може виявитися більшою за поточну ємність. Коли це відбувається, ємність автоматично збільшується.

ФункціїStringBuilder

Основні функції StringBuilder, яких немає String: append()і insert(), які перевантажені прийому різного типу даних. Кожен конвертує аргумент у рядок і додає його до рядка stringbuilder'а. Метод appendзавжди додає символи до кінця існуючої послідовності, тоді як метод insertдодає символи у вказане місце. Деякі методи класу StringBuilder. Керування рядками, функції для роботи з рядками Java.  Частина 2 - 7Ви можете використовувати будь-який метод класу Stringна об'єкті класу StringBuilder, попередньо сконвертувавши його в рядок методом toString(). Потім із рядка можна знову зробити stringbuilder, використовуючи конструктор: StringBuilder(String str).

приклад

Програма StringDemo, яку ми розглядали в попередніх уроках Java - приклад того, коли використання StringBuilderзамість Stringробить програму простіше. StringDemoперевертає паліндром: Керування рядками, функції для роботи з рядками Java.  Частина 2 - 8Програма виведе:
doT saw I was toD
Для того щоб перевернути термін програма спочатку конвертує рядок у масив символів (перший цикл), далі перевертає масив і назад конвертує масив у рядок. Якщо ви конвертуєте рядок palindrome в stringbuilder, ви можете використовувати метод reverse()класу StringBuilder. Код стане чистішим і простішим за читання: Керування рядками, функції для роботи з рядками Java.  Частина 2 - 9Висновок:
doT saw I was toD
Зверніть увагу, що в функцію println()ми передаємо StringBuilder:
System.out.println(sb);
Метод sb.toString()буде неявно викликаний, як і будь-якого іншого об'єкта, переданого в println(). Посилання на першоджерело: Керування рядками, функції для роботи з рядками Java. Частина 2
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ