Как проверить является ли строка числом java
5 лет назад
Человек-Молекула
Ответы
Также можно воспользоваться методом StringUtils.isNumeric() :
4 года назад
Сергей Якимович
Другой пример реализации метода с помощью регулярных выражений :
4 года назад
Сергей Якимович
Приведенный ниже метод isNumber() проверит является ли строка числом :
4 года назад
Сергей Якимович
Проще всего попробовать преобразовать строку и поймать ошибку:
parseInt сам проверяет знак, цифры и диапазон int.
Что считается числом
Перед проверкой определите, какие строки вы считаете числом. Разные способы отвечают по-разному:
Integer.parseInt не пропускает пробелы. Перед проверкой ввода пользователя вызывайте str.trim().
"99999999999" не помещается в int. Для таких чисел используйте Long.parseLong или new BigInteger(str).
Дробные числа
parseDouble принимает и экзотические строки: "NaN", "Infinity", "1e5", "10d". Если они не нужны, используйте регулярное выражение.
Регулярное выражение
Регулярка проверяет формат, но не диапазон. Строка из 30 цифр пройдёт проверку, а parseInt на ней упадёт.
Только цифры
Без проверки на пустую строку метод вернёт true для "".
Character.isDigit пропускает и цифры других алфавитов, например арабские ٣. Для строгой проверки на 0–9 используйте условие c >= '0' && c <= '9'.
Apache Commons Lang
Библиотеку нужно подключить отдельно через Maven или Gradle.
Строки, исключения и обработку ошибок разбирают в бесплатном курсе «Основы Java».
11 дней назад
Никита Вихров






