Програма Java за проверка дали даден низ е цифров

В тази програма ще научите различни техники, за да проверите дали низът е цифров или не в 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+.

Интересни статии...