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 зробили так, що абсолютно всі змінні, об’єкти, вирази в 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. Переведення об’єкта/примітива у рядок

Для переведення екземпляра будь-якого Java-класу або будь-якого примітивного типу даних до рядкового представлення можна використовувати метод String.valueOf():

public class StringExamples {
    public static void main(String[] args) {
        String a = String.valueOf(1);
        String b = String.valueOf(12.0D);
        String c = String.valueOf(123.4F);
        String d = String.valueOf(123456L);
        String s = String.valueOf(true);

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println(s);
        
        /*
        Вивід:
        1
        12.0
        123.4
        123456
        true
         */
    }
}

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

Ну і насамкінець хотілося б розповісти про кілька методів типу 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