Введення у рядки. Клас String. Основні операції з рядками
Введення у рядки. Клас String. Основні операції з рядками
Введення у рядки в Java
Рядки (строки) в Java представляються класом String і є послідовністю символів. Рядки вважаються об’єктами, хоча на перший погляд вони можуть виглядати як примітивні типи.
Клас String
Іммутабельність рядків: Рядки в Java незмінні (іммутабельні). Це означає, що після створення рядка його вміст не можна змінити. Наприклад, коли змінюєте значення рядка, насправді створюється новий об’єкт String, а не змінюється старий.
Створення рядків:
1. За допомогою літералів:
String str = “Hello”;
Тут створюється рядок у пулі рядків (String pool) для оптимізації використання пам’яті.
2. За допомогою конструктора класу:
String str = new String(“Hello”);
У цьому випадку завжди створюється новий об’єкт, навіть якщо такий рядок уже є у пулі рядків.
Основні операції з рядками
Клас String надає багато методів для роботи з рядками. Розглянемо найбільш важливі з них.
1. Конкатенація (з’єднання рядків)
Ви можете з’єднувати рядки за допомогою оператора `+` або методу `concat()`.
String str1 = “Hello, “;
String str2 = “world!”;
String result = str1 + str2; // “Hello, world!”
Метод concat():
String result = str1.concat(str2); // “Hello, world!”
2. Отримання довжини рядка
Метод length() повертає кількість символів у рядку.
String str = “Hello”;
int length = str.length(); // 5
3. Отримання символа на певній позиції
Метод charAt(int index) повертає символ, який знаходиться на вказаній позиції.
char ch = str.charAt(1); // ‘e’, індексація починається з 0
4. Перевірка порожнього рядка
Метод isEmpty() перевіряє, чи є рядок порожнім (довжина рядка дорівнює 0).
boolean empty = str.isEmpty(); // false
5. Порівняння рядків
equals() — перевіряє, чи мають два рядки однаковий вміст.
String str1 = “Hello”;
String str2 = “hello”;
boolean equal = str1.equals(str2); // false
equalsIgnoreCase() — ігнорує регістр під час порівняння.
boolean equalIgnoreCase = str1.equalsIgnoreCase(str2); // true
6. Пошук підрядка
contains() — перевіряє, чи містить рядок інший підрядок.
boolean contains = str.contains(“ell”); // true
indexOf() — повертає індекс першого входження підрядка (або символа) в рядку. Якщо підрядок не знайдений, повертає `-1`.
int index = str.indexOf(“ell”); // 1
7. Витяг підрядка
Метод substring(int beginIndex, int endIndex) повертає підрядок від позиції `beginIndex` до `endIndex` (не включаючи).
String sub = str.substring(1, 4); // “ell”
8. Заміна символів або підрядків
Метод replace() дозволяє замінювати символи або підрядки у рядку.
- Заміна символів:
String result = str.replace(‘l’, ‘p’); // “Heppo”
- Заміна підрядка:
String result = str.replace(“lo”, “y!”); // “Hey!”
9. Перетворення рядка на масив символів
Метод toCharArray() перетворює рядок на масив символів.
char[] charArray = str.toCharArray();
10. Перетворення рядка у нижній та верхній регістр
toLowerCase() — перетворює рядок у нижній регістр.
String lower = str.toLowerCase(); // “hello”
toUpperCase() — перетворює рядок у верхній регістр.
String upper = str.toUpperCase(); // “HELLO”
11. Обрізка пробілів
Метод trim() видаляє пробіли на початку та в кінці рядка.
String str = ” Hello “;
String trimmed = str.trim(); // “Hello”
12. Розбиття рядка на частини
Метод split(String regex) розбиває рядок на частини за вказаним регулярним виразом (regex).
String str = “apple,banana,orange”;
String[] fruits = str.split(“,”); // Масив [“apple”, “banana”, “orange”]
Приклад використання рядкових операцій
public class StringExample {
public static void main(String[] args) {
String str = ” Java Programming “;
// Обрізка пробілів
str = str.trim(); // “Java Programming”
// Конкатенація рядків
str = str + ” is fun!”; // “Java Programming is fun!”
// Пошук підрядка
boolean contains = str.contains(“Programming”); // true
// Витяг підрядка
String sub = str.substring(5, 16); // “Programming”
// Заміна символів
String replaced = str.replace(‘a’, ‘@’); // “J@v@ Progr@mming is fun!”
// Перетворення у верхній регістр
String upper = str.toUpperCase(); // “JAVA PROGRAMMING IS FUN!”
System.out.println(str);
System.out.println(sub);
System.out.println(replaced);
System.out.println(upper);
}
}
Висновок:
- Рядки у Java є незмінними об’єктами, що зберігаються у спеціальній структурі для ефективного використання пам’яті.
- Клас String має безліч корисних методів для роботи з текстовими даними: конкатенація, порівняння, пошук, витяг підрядків, заміна символів тощо.
- Завдяки своїй незмінності, рядки використовуються безпечним способом у багатопотокових програмах.