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 сделали так, что абсолютно все переменные, объекты, выражения в 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

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() очень умная.

1
Задача
JAVA 25 SELF, 2 уровень, 3 лекция
Недоступна
Код доступа 🔑
Код доступа 🔑
1
Задача
JAVA 25 SELF, 2 уровень, 3 лекция
Недоступна
Номер рейса ✈️
Номер рейса ✈️
1
Задача
JAVA 25 SELF, 2 уровень, 3 лекция
Недоступна
Год выпуска фильма 🎞️
Год выпуска фильма 🎞️
1
Задача
JAVA 25 SELF, 2 уровень, 3 лекция
Недоступна
Суммирование результатов в игре 🕹️
Суммирование результатов в игре 🕹️
Комментарии (27)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
18 января 2026
Пока-что ничего трудного. Это радует
agaj0e Уровень 3
12 декабря 2025
почему не получается открыть задчачи за черную материю?(
Зепп Бранниган Уровень 41 Moderator
12 декабря 2025
За черную материю открываются только лекции.
12 ноября 2025
Ребят лайкните за легкие задачи)
Yan Cuman Уровень 28
16 октября 2025
твари увеберите эту хуету Intger
18 октября 2025
а что не так с Integer?
Дмитрий Уровень 4
15 октября 2025
Пока все идет как по маслу))
C0N5P1RACY Уровень 21
14 октября 2025
Вот что значит "Игра с отрицательным балансом"!
Julia Sevruk Уровень 6
23 сентября 2025
Вернулась в JavaRush после 6 летнего перерыва и как же легко начинать, строки особенно хорошо идут, а вот с цифрами есть проблемки) Ребята, даже если вы когда то бросили - не переживайте, вы снова можете начать и двигаться к своей мечте!
Павел Уровень 5
11 января 2026
Какими судьбами вернулась?
Peter Уровень 6
15 января 2026
Выидимо вернулись вы ненадолго)
WAZAAA Уровень 1
22 сентября 2025
👀
Гуманитарий Уровень 7
14 сентября 2025
Накидайте лайков, если не сложно ^^ Коллекционирую ачивки
Ksanders Уровень 32
18 сентября 2025
долго вам еще коллекционировать
Гуманитарий Уровень 7
19 сентября 2025
Москва не сразу строилась! Все неравнодушные кто ставит лайк на просьбу выше - попадают в Рай вне очереди :3
Denis Skab Уровень 8
23 сентября 2025
спасибо, но в рай как то рановато
Павел Уровень 5
11 января 2026
заработай!
Ramizzz Уровень 4
10 сентября 2025
Сложная лекция...
Alina Gabidulina Уровень 27
14 сентября 2025
да тебе похоже каждая лекция сложная
hidden #3515555 Уровень 26
16 сентября 2025
Что за буллинг во время учебы
Alina Gabidulina Уровень 27
17 сентября 2025
потому что реально чел пишет почти под каждой лекцией что она сложная, и это бесит, как-будто он потоки или мапы проходит, тут то что сложного
evoker7lug Уровень 1
23 сентября 2025
у всех разный бэкграунд. будь терпимее
16 октября 2025
у тебя такое чсв будто бы ты в гугле работаешь) или сотый ранг европы в доте имеешь
Alina Gabidulina Уровень 27
17 октября 2025
ну бля, чел как был 4лвла так и остался, в чем я не права?Ну реально, разве тема сложная?
18 октября 2025
Пхавхвх ну ладно, по факту Я так, чисто тебя подбайтить решил
Павел Уровень 5
11 января 2026
всё равно, нечего ныть в комментах: других новичков деморализует!