Разбор чисел из ввода
Преобразуйте текст в числа
«Разбор чисел из ввода» — бесплатный урок Java Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Java Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Java Academy содержит 4 уроков всего.
Строки всегда имеют тип String
readLine() всегда возвращает String, даже если пользователь вводит 42. Чтобы выполнять арифметические действия, нужно разобрать этот текст и преобразовать его в число.
В Java для этого есть вспомогательные методы, например Integer.parseInt и Double.parseDouble.
Integer.parseInt
Integer.parseInt(String) преобразует текст вроде "42" в значение типа int, равное 42.
После преобразования с этим значением можно складывать, умножать его и сравнивать так же, как любое другое число.
String text = "42";
int n = Integer.parseInt(text);
System.out.println(n + 1);Запускаемый пример разбора
Вот полноценная запускаемая программа, которая разбирает строку, заданную в коде, и удваивает её значение.
Она не читает данные из System.in, поэтому запускается сразу и выводит результат.
public class Main {
public static void main(String[] args) {
String text = "21";
int n = Integer.parseInt(text);
System.out.println("Doubled: " + (n * 2));
}
}Сначала чтение, затем разбор
Реальный шаблон выглядит так: прочитать строку, а затем разобрать её. Эта программа считывает одно число из консоли и выводит его квадрат.
Поскольку она ожидает данные из System.in, здесь она не запускается автоматически, но это повседневный шаблон работы.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
System.out.println("Square: " + (n * n));
}
}Удаляйте пробелы перед разбором
Лишние пробелы мешают разбору. Integer.parseInt(" 42 ") выбрасывает ошибку, а Integer.parseInt(" 42 ".trim()) работает.
Хорошая привычка — вызывать trim() для строки перед разбором.
String raw = " 7 ";
int n = Integer.parseInt(raw.trim());
System.out.println(n);Разбор дробных чисел
Для дробных чисел используйте Double.parseDouble. Он преобразует текст вроде "3.14" в значение типа double.
Для очень больших целых чисел, выходящих за диапазон int, также есть Long.parseLong.
public class Main {
public static void main(String[] args) {
double pi = Double.parseDouble("3.14");
System.out.println(pi * 2);
}
}Несколько чисел в одной строке
Часто строка содержит несколько чисел, разделённых пробелами, например "10 20 30". Используйте split(" "), чтобы разделить её на массив элементов типа String.
Затем разберите каждый элемент отдельно.
String[] parts = "10 20 30".split(" ");
int a = Integer.parseInt(parts[0]);
int b = Integer.parseInt(parts[1]);
System.out.println(a + b);Суммирование разделённых чисел
Эта запускаемая программа разделяет строку и складывает все числа в цикле.
Строка задана в коде, поэтому программа запускается без ввода, но для работы с настоящей консолью замените её на br.readLine().
public class Main {
public static void main(String[] args) {
String line = "5 8 2 10";
String[] parts = line.split(" ");
int sum = 0;
for (String p : parts) {
sum += Integer.parseInt(p);
}
System.out.println("Sum: " + sum);
}
}Некорректный ввод вызывает ошибку
Если текст не является допустимым числом — например, это "hello" или пустая строка, — parseInt выбрасывает NumberFormatException.
Чтобы этого избежать, можно использовать конструкцию try/catch, и тогда программа не завершится аварийно из-за некорректного ввода.
try {
int n = Integer.parseInt("hello");
} catch (NumberFormatException e) {
System.out.println("Not a number!");
}Безопасный разбор на практике
Вот запускаемая программа, которая корректно обрабатывает некорректный ввод, не завершаясь аварийно.
Блок catch выводит понятное сообщение, когда текст нельзя преобразовать в число.
public class Main {
public static void main(String[] args) {
String input = "12x";
try {
int n = Integer.parseInt(input);
System.out.println(n);
} catch (NumberFormatException e) {
System.out.println("Invalid number: " + input);
}
}
}Памятка по разбору
При преобразовании ввода в числа:
Integer.parseIntиспользуйте для целых чисел, аDouble.parseDouble— для дробных.- Сначала удаляйте лишние пробелы с помощью
trim(). - Используйте
split(" ")для нескольких чисел в одной строке. - Для надёжности оборачивайте код в
try/catch.
Быстрая проверка
Подумайте, что происходит, когда разбор не удаётся.
Повторение
Вы узнали, что входные строки являются строками, которые разбираются с помощью Integer.parseInt или Double.parseDouble. Вы использовали trim() и split(" "), а для безопасности обработали NumberFormatException.
Далее: правильное закрытие потоков.
Изучай Java с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 104
- Уроки
- 374
Часто задаваемые вопросы
Урок «Разбор чисел из ввода» бесплатный?
Да — полный текст урока «Разбор чисел из ввода» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Java Academy, подпишись на CoddyKit PRO. Курс Java Academy содержит 4 уроков всего.
Чему я научусь в уроке «Разбор чисел из ввода»?
Преобразуйте текст в числа Ты практикуешь Java Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Java Academy?
Предыдущий опыт не требуется. Java Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Разбор чисел из ввода»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Java Academy?
Да. Каждый урок Java Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Зачем нужен BufferedReader
- Чтение строк
- Разбор чисел из ввода
- Безопасное закрытие потоков