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

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