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








