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 лекция
Недоступна
Суммирование результатов в игре 🕹️
Суммирование результатов в игре 🕹️
Комментарии (36)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Gans Electro Уровень 25
22 мая 2026
Если есть ошибки нужно напрямую писать админам. В вас есть кнопка с конвертом. Там можно писать Зепп Бранниган. Не можно а нужно. Именно комменты под лекциями они читают редко. Их слишком много
Anonymous #3627377 Уровень 4
2 мая 2026
это реально интересно!
Денис Уровень 1
13 марта 2026
Кто проходил старый и новы курс, какой лучше продолжать?
Tomoto Уровень 16
23 февраля 2026
+
22 февраля 2026
+
Андрей Уровень 27
27 января 2026
Добрый день! Все задания выполнены, а почему за переход на следующую лекцию просят одну деньгу? До этого момента переход на следующую лекцию был бесплатным (при выполнении всех задач).
Moriz Уровень 5
30 января 2026
ну вот так, курс хороший
18 января 2026
Пока-что ничего трудного. Это радует
Bohdan Уровень 1
6 февраля 2026
Так наоборот, на лёгком человек не учится
agaj0e Уровень 3
12 декабря 2025
почему не получается открыть задчачи за черную материю?(
Зепп Бранниган Уровень 41 Moderator
12 декабря 2025
За черную материю открываются только лекции.
12 ноября 2025
Ребят лайкните за легкие задачи)
Yan Cuman Уровень 28
16 октября 2025
твари увеберите эту хуету Intger
18 октября 2025
а что не так с Integer?
Олег Сычев Уровень 9
1 февраля 2026
Это же основы основ...