Програма 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іменований рядок, який містить рядок, який потрібно перевірити. У нас також є логічне значення числове, яке зберігає, якщо кінцевий результат є числовим чи ні.

Щоб перевірити, чи рядок містить лише числа, у блоці try ми використовуємо метод 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, ми використовуємо регулярний вираз, щоб перевірити, чи є рядок числовим чи ні. Це робиться за допомогою matches()методу String .

У matches()способі,

  • -?допускає нуль або більше -для від’ємних чисел у рядку.
  • \d+перевіряє, що рядок повинен мати принаймні 1 або більше чисел ( \d).
  • (\.\d+)?допускає нуль або більше заданого шаблону, (\.\d+)в якому
    • \.перевіряє, чи містить рядок .(десяткові крапки) чи ні
    • Якщо так, за ним має бути принаймні одне або декілька цифр \d+.

Ось еквівалентний код Java: програма Java для перевірки, чи є рядок числовим чи ні.

Цікаві статті...