Является ли строка числом
[Является ли строка числом]
В данной статье мы узнаем, как осуществить проверку на то, является ли заданная строка числом. Мы рассмотрим несколько способов: с использованием внешних библиотек и с помощью стандартного API JavaSE.
Способ 1: проверка, является ли строка числом (Java API)
Здесь мы используем только стандартный API JavaSE. В первом варианте мы пытаемся привести строку к типу Double, и если у нас это получается, мы считаем, что указанная строка – число:
public static boolean isNumeric(String str) {
try {
Double.parseDouble(str);
return true;
} catch (NumberFormatException e) {
return false;
}
}
С помощью этого метода вы можете проверить целые числа, дробные числа, числа с ведущим знаком плюса или минуса.
Способ 2: проверка, является ли строка числом (Apache Commons)
В этом способе мы используем библиотеку Apache Commons. Если у вас Maven проект, укажите следующий артефакт в вашем файле pom.xml:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
С помощью метода NumberUtils.isParsable мы можем проверить, является ли указанная строка числом:
System.out.println(NumberUtils.isParsable("120.99")); // true
System.out.println(NumberUtils.isParsable("+120.99f")); // true
System.out.println(NumberUtils.isParsable("-120.99f")); // true
System.out.println(NumberUtils.isParsable("120.99abc")); // false
System.out.println(NumberUtils.isParsable("0xFF")); // false
Метод isParsable является обёрткой поверх Integer.parseInt, Long.parseLong, Float.parseFloat и Double.parseDouble. Его удобно использовать для того, чтобы самому не писать шаблонный код по перехвату исключений этих методов.
Исходный код
public class IsStringNumber1 {
public static void main(String[] args) {
System.out.println(isNumeric("120.99")); // true
System.out.println(isNumeric("+120.99f")); // true
System.out.println(isNumeric("-120.99")); // true
System.out.println(isNumeric("120.99abc")); // false
System.out.println(isNumeric("0xFF")); // false
}
public static boolean isNumeric(String str) {
try {
Double.parseDouble(str);
return true;
} catch (NumberFormatException e) {
return false;
}
}
}
import org.apache.commons.lang3.math.NumberUtils;
public class IsStringNumber2 {
public static void main(String[] args) {
System.out.println(NumberUtils.isParsable("120.99")); // true
System.out.println(NumberUtils.isParsable("+120.99f")); // true
System.out.println(NumberUtils.isParsable("-120.99f")); // true
System.out.println(NumberUtils.isParsable("120.99abc")); // false
System.out.println(NumberUtils.isParsable("0xFF")); // false
}
}
Заключение
Мы рассмотрели различные способы проверить строку на то, является ли она числом.
Является ли строка числом
Комментарии 0