Использование библиотеки Apache Commons
Библиотека Apache Commons предоставляет некоторые методы для проверки, является ли строка числовой или нет.
Метод NumberUtils.isCreatable()
Метод isCreatable() - это простой и удобный метод для проверки, является ли строка числовой. Он также принимает числовые строки шестнадцатеричных чисел, начинающихся с 0x или oX, восьмеричных чисел, начинающихся с 0, научных обозначений, использующих букву e, и также принимает числа, помеченные типом квалификатора.
import org.apache.commons.lang3.math.NumberUtils;
public static void main(String[] args) {
String num1 = "a10c";
String num2 = "-104";
String num3 = "100";
String num4 = "0xA10";
System.out.println("String " + num1 + " is numeric: " + NumberUtils.isCreatable(num1));
System.out.println("String " + num2 + " is numeric: " + NumberUtils.isCreatable(num2));
System.out.println("String " + num3 + " is numeric: " + NumberUtils.isCreatable(num3));
System.out.println("String " + num4 + " is numeric: " + NumberUtils.isCreatable(num4));
}
Метод NumberUtils.isParsable()
Метод isParsable() используется для проверки, является ли строка разбираемой или нет. Он не может работать с шестнадцатеричными числами или научными обозначениями, как метод isCreatable().
import org.apache.commons.lang3.math.NumberUtils;
public static void main(String[] args) {
String num1 = "a10c";
String num2 = "-104";
String num3 = "100";
String num4 = "0xA10";
System.out.println("String " + num1 + " is numeric: " + NumberUtils.isParsable(num1));
System.out.println("String " + num2 + " is numeric: " + NumberUtils.isParsable(num2));
System.out.println("String " + num3 + " is numeric: " + NumberUtils.isParsable(num3));
System.out.println("String " + num4 + " is numeric: " + NumberUtils.isParsable(num4));
}
Метод StringUtils.isNumeric()
Метод isNumeric() проверяет на Unicode-цифры и возвращает false, если числовая строка обозначает отрицательное число или содержит десятичную точку. Этот метод следует рассматривать только в том случае, если мы просто проверяем на положительные целые числа.
import org.apache.commons.lang3.StringUtils;
public static void main(String[] args) {
String num1 = "a10c";
String num2 = "-104";
String num3 = "100";
String num4 = "0.11";
System.out.println("String " + num1 + " is numeric: " + StringUtils.isNumeric(num1));
System.out.println("String " + num2 + " is numeric: " + StringUtils.isNumeric(num2));
System.out.println("String " + num3 + " is numeric: " + StringUtils.isNumeric(num3));
System.out.println("String " + num4 + " is numeric: " + StringUtils.isNumeric(num4));
}
Метод StringUtils.isNumericSpace()
Метод isNumericSpace() также проверяет на пробел. Если строка имеет тип "19 8", то этот метод вернет true. Он также вернет true, если строка состоит только из пробелов.
import org.apache.commons.lang3.StringUtils;
public static void main(String[] args) {
String num1 = "a10c";
String num2 = " ";
String num3 = "100";
String num4 = "0.11";
System.out.println("String " + num1 + " is numeric: " + StringUtils.isNumeric(num1));
System.out.println("String " + num2 + " is numeric: " + StringUtils.isNumeric(num2));
System.out.println("String " + num3 + " is numeric: " + StringUtils.isNumeric(num3));
System.out.println("String " + num4 + " is numeric: " + StringUtils.isNumeric(num4));
}