В тази програма ще научите различни техники, за да проверите дали низът е цифров или не в Java.
За да разберете този пример, трябва да имате познанията по следните теми за програмиране на Java:
- Java String
- Обработка на изключения в Java
Пример 1: Проверете дали низът е цифров
public class Numeric ( public static void main(String() args) ( String string = "12345.15"; boolean numeric = true; try ( Double num = Double.parseDouble(string); ) catch (NumberFormatException e) ( numeric = false; ) if(numeric) System.out.println(string + " is a number"); else System.out.println(string + " is not a number"); ) )
Изход
12345.15 е число
В горната програма имаме String
именуван низ, който съдържа низ, който трябва да бъде проверен. Имаме и булева стойност числова, която съхранява, ако крайният резултат е числов или не.
За да проверите дали низ съдържа само цифри, в блока опит, ние използваме Double
е parseDouble()
метод за преобразуване на низ до Double
.
Ако изхвърли грешка (т.е. NumberFormatException
грешка), това означава, че низът не е число и е зададено числово false
. В противен случай това е номер.
Ако обаче искате да проверите дали за определен брой низове, ще трябва да го промените на функция. И логиката се основава на хвърляне на изключения, това може да бъде доста скъпо.
Вместо това можем да използваме силата на регулярните изрази, за да проверим дали низът е цифров или не, както е показано по-долу.
Пример 2: Проверете дали низът е числов или не използва регулярни изрази (регулярно изражение)
public class Numeric ( public static void main(String() args) ( String string = "-1234.15"; boolean numeric = true; numeric = string.matches("-?\d+(\.\d+)?"); if(numeric) System.out.println(string + " is a number"); else System.out.println(string + " is not a number"); ) )
Изход
-1234.15 е число
В горната програма, вместо да използваме блок try-catch, използваме регулярно изражение, за да проверим дали низът е цифров или не. Това се прави по метода на String matches()
.
В matches()
метода,
-?
позволява нула или повече-
за отрицателни числа в низа.\d+
проверява, че низът трябва да има поне 1 или повече числа (\d
).(\.\d+)?
позволява нула или повече от дадения модел,(\.\d+)
в който\.
проверява дали низът съдържа.
(десетични точки) или не- Ако отговорът е „да“, той трябва да бъде последван от поне едно или повече числа
\d+
.