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

В тази програма ще научите различни техники, за да проверите дали низът е цифров или не в Kotlin.

Пример 1: Проверете дали низът е цифров

 import java.lang.Double.parseDouble fun main(args: Array) ( val string = "12345s15" var numeric = true try ( val num = parseDouble(string) ) catch (e: NumberFormatException) ( numeric = false ) if (numeric) println("$string is a number") else println("$string is not a number") )

Когато стартирате програмата, изходът ще бъде:

 12345s15 не е число

В горната програма имаме Stringименуван низ, който съдържа низ, който трябва да бъде проверен. Имаме и булева стойност числова, която съхранява, ако крайният резултат е числов или не.

За да проверите дали низ съдържа само цифри, в блока опит, ние използваме Doubleе parseDouble()метод за преобразуване на низ до Double.

Ако изхвърли грешка (т.е. NumberFormatExceptionгрешка), това означава, че низът не е число и е зададено числово false. В противен случай това е номер.

Ако обаче искате да проверите дали за определен брой низове ще трябва да го промените на функция. И логиката се основава на хвърляне на изключения, това може да бъде доста скъпо.

Вместо това можем да използваме силата на регулярните изрази, за да проверим дали низът е цифров или не, както е показано по-долу.

Пример 2: Проверете дали низът е числов или не използва регулярни изрази (регулярно изражение)

 fun main(args: Array) ( val string = "-1234.15" var numeric = true numeric = string.matches("-?\d+(\.\d+)?".toRegex()) if (numeric) println("$string is a number") else println("$string is not a number") )

Когато стартирате програмата, изходът ще бъде:

 -1234.15 е число

В горната програма, вместо да използваме блок try-catch, използваме регулярно изражение, за да проверим дали низът е цифров или не. Това се прави по метода на String matches().

В matches()метода,

  • -?позволява нула или повече -за отрицателни числа в низа.
  • \d+проверява, че низът трябва да има поне 1 или повече числа ( \d).
  • (\.\d+)?позволява нула или повече от дадения модел, (\.\d+)в който
    • \.проверява дали низът съдържа .(десетични точки) или не
    • Ако отговорът е „да“, той трябва да бъде последван от поне едно или повече числа \d+.

Ето еквивалентния Java код: Java програма за проверка дали низът е цифров или не.

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