Рядки в Java: Простий посібник

В Java, рядки відіграють важливу роль, оскільки є одним з найбільш поширених типів даних для обробки тексту. Ось спрощене пояснення класів, що працюють з рядками в Java.

1. String

String в Java представляє собою послідовність символів, таких як слова або речення.

  • Незмінність:
    Рядки є незмінними, тобто після їх створення значення не можна змінити. Якщо ви модифікуєте рядок, створюється новий об'єкт.
  • Пул рядків для оптимізації:
    Рядки, створені за допомогою літералів, зберігаються в спеціальній ділянці пам'яті, яка називається String Pool (Пул рядків). Це дозволяє економити пам'ять, повторно використовуючи однакові рядки.
  • Використання: Найкраще підходить для невеликого або незмінного тексту.

Приклад:

String s = “Hello”;

s = s + “ World”;
StringBuilder

Клас StringBuilder є гнучким і ефективним альтернативним засобом для обробки рядків, коли потрібні часті зміни.

  • Змінний: На відміну від String, ви можете змінювати об'єкт StringBuilder без створення нового.
  • Продуктивність: Швидший за StringBuffer, оскільки не є потокобезпечним (не підтримує роботу з кількома потоками).
  • Використання: Ідеальний для однониткових додатків, де потрібно часто додавати, вставляти або видаляти символи.

Приклад:

StringBuilder sb = new StringBuilder(“Hello”);

sb.append(“ World”);
StringBuffer

Клас StringBuffer схожий на StringBuilder, але додає потокобезпечність для використання в багатопотокових середовищах.

  • Потокобезпечний: Забезпечує синхронізацію операцій з рядками, що робить їх безпечними для одночасного доступу кількох потоків.
  • Продуктивність: Повільніший за StringBuilder через накладні витрати на синхронізацію.
  • Використання: Корисний у багатопотокових додатках, де необхідна безпечна маніпуляція рядками.

Приклад:

StringBuffer sb = new StringBuffer(“Hello”);

sb.append(“ World”);
StringTokenizer

Клас StringTokenizer використовується для розбиття рядків на менші частини (токени) на основі роздільників, таких як пробіли або коми.

  • Застарілий: Хоча він все ще доступний, його вважають менш сучасним порівняно з String.split().
  • Простий: Добре підходить для базового токенізування, але не має розширених можливостей регулярних виразів.
  • Використання: Використовується в старих (наследованих) Java додатках.

Приклад:

StringTokenizer st = new StringTokenizer(“Hello, World”, “,”);

while (st.hasMoreTokens()) {

System.out.println(st.nextToken());

}

Коли використовувати кожен клас:

  • String: Використовуйте для сталого або рідко змінюваного тексту.
  • StringBuilder: Використовуйте в однопотокових сценаріях, де необхідні часті зміни.
  • StringBuffer: Використовуйте в багатопотокових сценаріях для операцій з рядками.
  • StringTokenizer: Рідко використовується, але корисний у старих додатках для простого токенізування.

Перекладено з: Java Strings: A Simple Guide

Leave a Reply

Your email address will not be published. Required fields are marked *