JavaRush /Курси /JAVA 25 SELF /Конвертація між типами даних

Конвертація між типами даних

JAVA 25 SELF
Рівень 2 , Лекція 3
Відкрита

1. Навіщо потрібна конвертація типів?

Java — це суворо типізована мова. Якщо у компʼютера є «коробочка» для числа, то спроба вставити в неї текст — приблизно те саме, що спроба встромити виделку в USB‑розʼєм. Компілятор такого не пробачить! 😡

Але на практиці ми часто працюємо водночас із різними типами даних. Наприклад, у вас є рядок, що містить число. Ось тут і потрібне перетворення (або конвертація) типів.

Розгляньмо приклад. Припустімо, ви хочете зберігати кількість користувачів:

int a = 1;
int b = "2";
int c = "три";

Компілятор тут одразу скаже: «За кого ви мене маєте? Я не вмію автоматично перетворювати рядок на число без вашої участі — потрібно явно перетворити рядок на число».

У Java є кілька способів конвертації, і кожен — зі своїми плюсами, мінусами та типовими підводними каменями.

2. Перетворюємо int у String

На практиці часто потрібно отримати рядкове подання числа: наприклад, щоб вивести його на екран, зберегти у файл, передати мережею, обʼєднати з текстом тощо. У Java для цього існує кілька способів, кожен із яких доречний у певних ситуаціях.

Функція String.valueOf()

Це основний і найпоширеніший спосіб:

int number = 42;
String str = String.valueOf(number);  // str == "42"

String.valueOf() перетворює число на рядок, що відповідає значенню переданого аргументу.

Конкатенація з порожнім рядком

Дієвий і простий спосіб:

int number = 42;
String str = "" + number;

Такий підхід добре працює для простих випадків, але може бути менш очевидним для того, хто читає код.

3. Неявне перетворення в рядок

Як уже зазначено, у Java будь‑які змінні, обʼєкти чи вирази можна перетворити на рядок типу 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

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

Нагадаємо: щоб перетворити число на рядок у Java, достатньо додати до нього порожній рядок:

String str = "" + число;

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

Виглядає ця команда так:


int x = Integer.parseInt(рядок);
Перетворення рядка на число

Де int x — оголошення цілочисельної змінної x, а рядок — це рядок, що містить число (послідовність цифр, можливо зі знаком «-» на початку).

Приклади:

String str = "123";
int number1 = Integer.parseInt(str);        //  number1 містить число 123

int number2 = Integer.parseInt("321");      //  number2 містить число 321

int number3 = Integer.parseInt("321" + 0);  //  number3 містить число 3210

int number4 = "321"; //  Не скомпілюється: змінна типу int, а значення — типу String

Для відʼємних значень це теж працює: функція Integer.parseInt() обробляє їх коректно.

Коментарі (3)
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ
Muka Рівень 8
20 грудня 2025
Дякую за україномовні хороші курси, поки все влаштовує, конспект писати легко, все гарно пояснюють, ніби запомятовується, в подальшому буду залишати кометрі, може колись хтось прочитає))
Ярослав Рівень 3
3 січня 2026
Прочитав.. Дякую за коментар.. Як там справи на 6 рівні?)
Muka Рівень 8
13 січня 2026
Потроху помалу вчусь після роботи)) конспект росте, трохи важко самому писати код.. зараз созесередився на практиці по завданнях з сайтів/Ші, рекомендую, гарно допомагає тренуватись