Разбор и valueOf
Преобразуйте строки в числа
«Разбор и valueOf» — бесплатный урок Java Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Java Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Java Academy содержит 4 уроков всего.
Преобразование текста в числа
Ввод пользователя и файлы поступают в виде текста String. Чтобы выполнять вычисления, необходимо преобразовать этот текст в числа.
Классы-обёртки предоставляют для этого два семейства методов: parseXxx возвращает примитив, а valueOf — объект-обёртку.
parseInt возвращает примитив
Integer.parseInt принимает строку и возвращает обычное значение int. Это самый распространённый метод разбора.
public class Main {
public static void main(String[] args) {
int n = Integer.parseInt("123");
System.out.println(n + 1);
}
}valueOf возвращает обёртку
Integer.valueOf принимает строку и возвращает объект Integer, а не примитив. Это удобно, когда Вам сразу нужна обёртка, например для добавления в коллекцию.
public class Main {
public static void main(String[] args) {
Integer boxed = Integer.valueOf("456");
System.out.println(boxed);
}
}Разбор дробных чисел
Для текста с плавающей точкой используйте Double.parseDouble. Он обрабатывает значения с десятичной точкой и даже экспоненциальную запись.
public class Main {
public static void main(String[] args) {
double price = Double.parseDouble("19.99");
System.out.println(price * 2);
}
}Разбор других типов
У каждой числовой обёртки есть метод разбора: Long.parseLong, Double.parseDouble, Float.parseFloat, Short.parseShort и Byte.parseByte.
public class Main {
public static void main(String[] args) {
long big = Long.parseLong("9000000000");
System.out.println(big);
}
}Разбор логических значений
Boolean.parseBoolean возвращает true только тогда, когда текст совпадает со строкой "true" без учёта регистра. Для любой другой строки, включая null, возвращается false.
public class Main {
public static void main(String[] args) {
System.out.println(Boolean.parseBoolean("true"));
System.out.println(Boolean.parseBoolean("TRUE"));
System.out.println(Boolean.parseBoolean("yes"));
}
}Разбор в разных системах счисления
Integer.parseInt принимает необязательный аргумент основания системы счисления. Значение 2 позволяет прочитать двоичное число, а 16 — шестнадцатеричное.
public class Main {
public static void main(String[] args) {
int binary = Integer.parseInt("1010", 2);
int hex = Integer.parseInt("ff", 16);
System.out.println(binary);
System.out.println(hex);
}
}Некорректный ввод вызывает исключение
Если строка не является допустимым числом, разбор вызывает исключение NumberFormatException. Рискованные операции разбора следует заключать в блок try-catch.
public class Main {
public static void main(String[] args) {
try {
int n = Integer.parseInt("hello");
System.out.println(n);
} catch (NumberFormatException e) {
System.out.println("Not a number!");
}
}
}Остерегайтесь пробелов
Разбор не допускает пробелы по краям строки. Integer.parseInt(" 5 ") вызывает исключение.
Сначала всегда вызывайте trim() или strip() для пользовательского ввода.
public class Main {
public static void main(String[] args) {
String raw = " 42 ";
int n = Integer.parseInt(raw.trim());
System.out.println(n);
}
}Преобразование чисел обратно в текст
Чтобы выполнить обратное преобразование, используйте String.valueOf или Integer.toString. Оба метода превращают число в его текстовое представление.
public class Main {
public static void main(String[] args) {
String text = Integer.toString(789);
String text2 = String.valueOf(3.14);
System.out.println(text.length());
System.out.println(text2);
}
}parseXxx и valueOf
Запомните правило: parseInt возвращает примитив int, а valueOf — объект Integer. Выбирайте метод в зависимости от того, нужен ли Вам примитив или обёртка.
Быстрая проверка
Проверьте, что Вы узнали о разборе строк.
Итоги
Вы узнали, как преобразовывать строки и числа друг в друга:
parseInt,parseDoubleи другие подобные методы возвращают примитивыvalueOfвозвращает объекты-обёртки- Некорректный ввод вызывает
NumberFormatException, поэтому удаляйте пробелы по краям и перехватывайте это исключение parseIntможет читать числа в других системах счисления с помощью аргумента основания- Используйте
toStringилиString.valueOf, чтобы преобразовать число обратно в текст
Часто задаваемые вопросы
Урок «Разбор и valueOf» бесплатный?
Да — полный текст урока «Разбор и valueOf» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Java Academy, подпишись на CoddyKit PRO. Курс Java Academy содержит 4 уроков всего.
Чему я научусь в уроке «Разбор и valueOf»?
Преобразуйте строки в числа Ты практикуешь Java Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Java Academy?
Предыдущий опыт не требуется. Java Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Разбор и valueOf»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Java Academy?
Да. Каждый урок Java Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Примитивные типы и типы-обёртки
- Автоупаковка и распаковка
- Разбор и valueOf
- Подводные камни автоупаковки