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