В этой программе вы изучите различные методы проверки, является ли строка числовой или нет в 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именованная строка, содержащая проверяемую строку. У нас также есть логическое значение numeric, которое сохраняет, является ли окончательный результат числовым или нет.
Для того, чтобы проверить , если строка содержит только цифры, в блоке попробовать, мы используем Double«s 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 для проверки, является ли строка числовой.








