Java Academy · Урок

Разбор чисел из ввода

Преобразуйте текст в числа

Урок 3 из 413 шагов

«Разбор чисел из ввода» — бесплатный урок 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 — локальная установка не требуется.

Все уроки этого курса

  1. Зачем нужен BufferedReader
  2. Чтение строк
  3. Разбор чисел из ввода
  4. Безопасное закрытие потоков
← Назад к Java Academy