ПРИХОДИТЕ УЧИТЬСЯ НОВОЙ ПРОФЕССИИ ЛЕТОМ СО СКИДКОЙ ДО 70%Забронировать скидку

Преобразование строки из EditText в целое число, Android

Пройдите тест, узнайте какой профессии подходите и получите бесплатную карьерную консультацию
В конце подарим скидку до 55% на обучение
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для трансформации строки в целое число применяйте Integer.parseInt("123"), проверте, что строка содержит правильное числовое значение:

Java
Скопировать код
try {
    int num = Integer.parseInt("123"); // Получаем целое число.
} catch (NumberFormatException e) {
    // Строка непреобразуема в число.
}

Обработка исключений позволит избежать ошибки приложения, если строка не содержит числа.

[AsideBanner]

Пройдите тест, узнайте какой профессии подходите и получите бесплатную карьерную консультацию
В конце подарим скидку до 55% на обучение
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Необходимые инструменты

Мощь ParseInt

Android предлагает возможность быстрого преобразования String в int с помощью Integer.parseInt().

Java
Скопировать код
try {
    int simpleNumber = Integer.parseInt("12345"); // Преобразуем строку в число.
} catch (NumberFormatException nfe) {
    // Обрабатываем ошибку, если строка не преобразуется в число.
}

Объектно-ориентированные решения

Для использования расширенных функционирований и для работы с объектом Integer используйте Integer.valueOf().

Java
Скопировать код
Integer complexNumber = Integer.valueOf("12345"); // применяем объектный подход.

Мастерство использования регулярных выражений

Регулярные выражения пригодится для извлечения чисел из строки, содержащей буквы.

Java
Скопировать код
String inputStr = "1t23h4i56s7is6a9string";
String numericStr = inputStr.replaceAll("[\\D]", ""); // Удаляем все, что не цифра.
int numberFromStr = Integer.parseInt(numericStr); // Преобразуем числовую строку в целое число.

Проверьте свою строку: Знание – власть

Проверка строки перед преобразованием помогает защищать ваше приложение от непредсказуемых ошибок.

Java
Скопировать код
if(myString != null && !myString.trim().isEmpty() && myString.matches("\\d+")) {
    int myNumber = Integer.parseInt(myString); // Преобразуем строку в число.
} else {
    // Строка не содержит число.
}

Переходим через джунгли нечисловых строк

В случаях, когда строки включают набор чисел и букв, пригодятся только цифры.

Java
Скопировать код
String mixedStr = "H3ll0WOrld";
String cleanStr = mixedStr.replaceAll("[\\D]", ""); // Оставляем только числа.
int numericValue = Integer.parseInt(cleanStr);
// Исключаем буквы и оставляем только числа, которые могут пригодиться.

Если требуется извлечь первое число из строки, примените:

Java
Скопировать код
int firstNumericValue = NumberFormat.getInstance().parse(mixedStr).intValue();
// Числа имеют приоритет!

Используйте регулярные выражения с учетом содержимого анализируемой строки.

Центр отладки

Понимание общих проблем поможет сохранить ваши нервы.

  • Несуществующий нуль: Используйте myString.isEmpty(), чтобы предотвратить NumberFormatException.

  • Кризис тождества: Убедитесь, что формат строки совпадает с ожидаемым (например, 123, а не 123.45).

  • Потеря в переводе: Обратите внимание на региональные форматы чисел, которые могут ввести в заблуждение.

Активизируйте отчет об ошибке, чтобы помочь пользователю или разработчику в понимании проблемы.

Визуализация

Представьте преобразование простой строки в целое число:

Markdown
Скопировать код
Строка "1234" ➡️ 🔄 ➡️ Целое число 1234

Это похоже на надувание воздушного шара:

Markdown
Скопировать код
🎈(вялый) + Гелий(`"1234"`) ➡️ 🎈(надутый, поднимающийся вверх)📏
Markdown
Скопировать код
Этапы:
1. 🧵 "1234"                   // Строка (вялый шарик)
2. 🎈➕🎈                      // Надуваем (добавляем гелий)
3. 🎈📏 Целое число 1234      // Шарик поднялся в воздух (используется значение)!

Если строка не является числом, воздушный шар лопается 🎈💥, вызывая NumberFormatException.

Оптимальная производительность: Что, Зачем и Как?

Улучшайте процесс для достижения идеала и продуктивности:

  • Избегайте создания объектов Integer без необходимости: Integer.parseInt() использует меньше ресурсов, чем Integer.valueOf(), когда объект Integer не требуется.

  • Не злоупотребляйте регулярными выражениями: Они могут быть громоздки, поэтому используйте их в оптимальном контексте.
  • Кэшируйте результат: Повторно распознаваете одну и ту же строку? Сохраните результат для дальнейшего использования.

Полезные материалы

  1. Integer | Android Developers — документация.
  2. How do I convert a String to an int in Java? – Stack Overflow — для удовлетворения любопытства.
  3. Java – Integer parseInt() method — обзор parseInt().
  4. NumberFormatException (Java Platform SE 7 ) — когда преобразование становится проблемой.
  5. converting json to models | CodePath Android Cliffnotes — от сырых данных к использованию.
  6. Java String — работа со строками.
  7. Integer.valueOf() vs Integer.parseInt() with Examples – GeeksforGeeks — сравнение valueOf() и parseInt().