1. Конкатенація — склеювання рядків

У Java з рядками можна робити дуже просту, але дуже цікаву річ — їх можна склеювати. Така операція має назву «конкатенація». Ну а для кращого запам'ятовування: Кон-Коти-Нація. Цю операцію також часто називають «склеювання рядків» або навіть просто «додавання рядків».

Для склеювання двох рядків використовують знак +. Це дуже просто:

"значення1" + "значення2"
Конкатенація двох рядків

Приклади:

Команда Примітка
String name = "Ганнуся" + "Ганнуся";
name містить рядок ГаннусяГаннуся
String city = "New York" + "Ганнуся";
city містить рядок New YorkГаннуся
String message = "Hello! " + "Ганнуся";
message містить рядок Hello! Ганнуся

Зрозуміло, що одночасно можна складати кілька рядків, а також складати рядки та змінні.

Приклади:

Команда Примітка
String name = "Ганнуся";
String city = "New York";
String message = "Hello!" + city + name + city;
name містить рядок Ганнуся
city містить рядок New York
message містить рядок
Hello!New YorkГаннусяNew York

В останньому прикладі видно, що текст у змінній message погано читається, тому що в ньому немає пробілів. Щоб вставити один чи кілька пробілів, слід просто написати їх у коді, узявши в подвійні лапки. Це простіше, ніж здається:

" "
Рядок, що містить один пробіл

До речі, якщо між парою подвійних лапок зовсім не лишити місця, тобто написати їх підряд, отримаємо так званий «пустий рядок»:

""
Порожній рядок

З одного боку, рядок начебто є, а з іншого, якщо його вивести на екран, там нічого не з'явиться. Якщо такий рядок склеїти з іншими рядками, також нічого не відбудеться. Це такий собі аналог нуля, тільки для рядків.



2. Перетворення на рядковий тип

Ми вже розповідали, що розробники Java передбачили в цій мові можливість перетворення абсолютно всіх змінних, об'єктів і виразів на тип String.

До того ж, коли ми складаємо тип String із будь-яким іншим типом, це перетворення відбувається автоматично. Приклади:

Команда Примітка
int a = 5;
String name = "Ганнуся" + a;
name містить рядок Ганнуся5
int a = 5;
String city = a + "New York" + a;
city містить рядок 5New York5
int number = 10;
String code = "Yo";
String message = "Hello! " + number + code;
message містить рядок Hello! 10Yo

У всіх трьох прикладах ми без проблем складали змінні типу int і String, і в результаті завжди отримували тип String.

Арифметичні операції з типом String виконувати не можна. Навіть якщо рядок цілком складається з цифр.

Приклади:

Команда Примітка
int a = 5;
String name = "1" + a;
name містить рядок 15
int a = 5;
String city = a + "9" + a;
city містить рядок 595
int number = 10;
String code = "10";
String message = "" + number + code;
message містить рядок 1010

Операція додавання виконується зліва направо, отже результат може бути дещо несподіваним. Приклад:

Команда Примітка
int a = 5;
String name = a + a + "1" + a;
name містить рядок 1015
Порядок виконання: ((a + a) + "1") + a

3. Перетворення рядка на число

У Java для перетворення числа на рядок досить просто додати його до пустого рядка:

String str"" + число;
Перетворення числа на рядок

А що ж робити, коли потрібно перетворити рядок на число? Насправді, не кожен рядок можна перетворити на число. Проте коли рядок складається лише з цифр, то таки можна. Для цього клас Integer має спеціальний метод.

Ця команда має такий вигляд:

int x = Integer.parseInt(рядок);

де int x — це оголошення цілочислової змінної x, а рядок — число, задане у вигляді рядка (рядок із цифр).

Приклади:

Команда Примітка
String str = "123";
int number = Integer.parseInt(str);
number містить число 123;
int number = Integer.parseInt("321");
number містить число 321
int number = Integer.parseInt("321" + 0);
number містить число 3210
int number = "321";
Не скомпілюється: змінна має тип int, а значення — тип String


4. Деякі методи роботи з рядками

І насамкінець розповімо про декілька методів типу String.

Метод length()

За допомогою методу length() можна дізнатися довжину рядка — скільки в ньому символів.

Приклади:

Команда Примітка
String name = "Rome";
int count = name.length();
count містить значення 4
int count = "".length();
count містить значення 0
String name = "Rom";
int count = (name + 12).length();
count містить значення 5

Методи можна застосовувати до всього, що має тип String, навіть до виразів:

            (name + 12).length()
        
Виклик методу length() для виразу типу String

Метод toLowerCase()

За допомогою методу toLowerCase() можна перетворити всі символи рядка на малі (рядкові):

Приклади:

Команда Примітка
String name = "Rom";
String name2 = name.toLowerCase();
name2 містить рядок rom
String name = "".toLowerCase();
name містить пустий рядок
String name = "ROM123";
String name2 = name.toLowerCase();
name2 містить рядок rom123

Метод toUpperCase()

За допомогою методу toUpperCase() можна перетворити всі символи рядка на великі (заголовні):

Приклади:

Команда Примітка
String name = "Rom";
String name2 = name.toUpperCase();
name2 містить рядок ROM
String name = "rom123";
String name2 = name.toUpperCase();
name2 містить рядок ROM123