Парсинг неотрицательного целого числа

JavaJavaBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии мы узнаем, как преобразовать строку в неотрицательное целое число в десятичной системе счисления с использованием метода parseUnsignedInt() в Java. Мы рассмотрим синтаксис, параметры и типы возвращаемых значений этого метода и научимся применять его с помощью нескольких примеров.

Создайте новый Java-файл

Во - первых, нам нужно создать новый Java-файл в директории ~/project. Мы можем это сделать, открыв терминал и введя:

touch ~/project/UnsignedIntegerParser.java

Это откроет пустое окно редактора Nano.

Импортируем класс Integer

Нам нужно импортировать класс Integer из пакета java.lang, так как он содержит метод parseUnsignedInt(). Мы можем это сделать, добавив следующий код в наш файл:

import java.lang.Integer;

Парсинг неотрицательного целого числа из строкового значения

Теперь давайте научимся использовать метод parseUnsignedInt(). Мы можем вызвать этот метод для строкового значения, и он вернет соответствующий ему объект неотрицательного целого числа в десятичной системе счисления. Вот пример:

String s = "123";
int n = Integer.parseUnsignedInt(s); //Преобразует переданную строку в неотрицательное целое число
System.out.println(n);

Результатом выполнения этого кода будет 123.

Обработка некорректного ввода

Если мы передадим некорректный ввод в метод parseUnsignedInt(), он выбросит исключение NumberFormatException. Мы можем обработать это исключение с помощью блока try-catch. Вот пример:

try {
  String s = "-123";
  int n = Integer.parseUnsignedInt(s); //Преобразует переданную строку в неотрицательное целое число
  System.out.println(n);
} catch(NumberFormatException ex) {
  System.out.println("Некорректный ввод.");
}

В этом коде мы пытаемся преобразовать отрицательное целое число, что является некорректным. Метод parseUnsignedInt() выбросит исключение NumberFormatException, которое поймает блок catch. Результатом выполнения этого кода будет Некорректный ввод..

Чтение ввода с консоли

Мы также можем читать ввод с консоли и преобразовывать его в неотрицательное целое число. Вот пример:

Scanner scanner = new Scanner(System.in);
System.out.print("Введите положительное целое число: ");
String s = scanner.nextLine();
try {
  int n = Integer.parseUnsignedInt(s); //Преобразует переданную строку в неотрицательное целое число
  System.out.println(n);
} catch(NumberFormatException ex) {
  System.out.println("Некорректный ввод.");
}

В этом коде мы используем класс Scanner для чтения ввода с консоли. Затем мы преобразуем введенную строку в неотрицательное целое число с использованием метода parseUnsignedInt(). Наконец, мы ловим любые исключения, которые могут возникнуть при разборе ввода.

Для запуска этого кода в терминале сначала нужно скомпилировать его с помощью команды:

javac UnsignedIntegerParser.java

Затем мы можем запустить его с помощью команды:

java UnsignedIntegerParser

Парсинг неотрицательных целых чисел из списка строк

Мы также можем преобразовывать неотрицательные целые числа из списка строк. Вот пример:

List<String> stringList = Arrays.asList("123", "456", "789");
for (String s : stringList) {
  try {
    int n = Integer.parseUnsignedInt(s); //Преобразует переданную строку в неотрицательное целое число
    System.out.println(n);
  } catch(NumberFormatException ex) {
    System.out.println("Некорректный ввод: " + s);
  }
}

В этом коде мы перебираем список строк и преобразуем каждую строку в неотрицательное целое число с использованием метода parseUnsignedInt(). Если строка не является допустимым неотрицательным целым числом, мы ловим исключение и выводим сообщение об ошибке.

Использование вспомогательной функции

Чтобы избежать повторения одного и того же блока try-catch каждый раз, когда мы парсим неотрицательное целое число, мы можем создать вспомогательную функцию, которая принимает строку в качестве входных данных и возвращает неотрицательное целое число. Вот пример:

public static int parseUnsignedInt(String s) {
  try {
    return Integer.parseUnsignedInt(s); //Преобразует переданную строку в неотрицательное целое число
  } catch(NumberFormatException ex) {
    return -1; //Возвращает -1 для некорректного ввода
  }
}

В этом коде мы определяем функцию parseUnsignedInt(), которая принимает строку в качестве входных данных и возвращает неотрицательное целое число. Если входные данные не представляют собой допустимое неотрицательное целое число, функция возвращает -1. Затем мы можем использовать эту функцию для парсинга неотрицательных целых чисел, не беспокоясь о исключениях. Вот пример того, как использовать функцию:

String s = "123";
int n = parseUnsignedInt(s);
System.out.println(n); //Вывод: 123

s = "-123";
n = parseUnsignedInt(s);
System.out.println(n); //Вывод: -1

Обработка больших неотрицательных целых чисел

Если нам нужно преобразовать большие неотрицательные целые числа, мы можем использовать метод parseUnsignedInt() класса UnsignedInteger вместо класса Integer. Этот метод возвращает long вместо int. Вот пример:

String s = "4294967295"; //Максимальное значение неотрицательного 32-разрядного целого числа
long n = Long.parseUnsignedLong(s);
System.out.println(n); //Вывод: 4294967295

Использование основания (радикса)

Если мы хотим преобразовать строку, представляющую число в основании (радиксе), отличном от 10, мы можем использовать метод parseInt(), который принимает дополнительный параметр radix. Вот пример:

String s = "1101"; //Двоичное представление числа 13
int n = Integer.parseUnsignedInt(s, 2); //Преобразовать как двоичное число
System.out.println(n); //Вывод: 13

Выход из Nano и запуск кода

Для выхода из Nano нажмите Ctrl+X, затем нажмите Y, чтобы сохранить файл, а затем нажмите Enter.

Для запуска кода в терминале мы можем скомпилировать его с помощью команды:

javac UnsignedIntegerParser.java

Затем мы можем запустить его с помощью команды:

java UnsignedIntegerParser

Резюме

В этом практическом занятии мы узнали, как преобразовать строковое значение в неотрицательное десятичное целое число с использованием метода parseUnsignedInt() в Java. Мы также узнали, как обрабатывать некорректный ввод, считывать ввод с консоли, преобразовывать неотрицательные целые числа из списка строк и использовать вспомогательные функции. Мы также узнали, как обрабатывать большие неотрицательные целые числа, использовать основание (радикс) и запускать наш код в терминале.