Сделай сам: допустимое число в Scala – изучение нескольких подходов

В Scala проверка того, представляет ли данная строка допустимое число, может показаться простой задачей, но она может оказаться немного сложной из-за разнообразия числовых форматов и крайних случаев. В этой статье блога мы рассмотрим несколько методов проверки чисел в Scala, приведя попутно примеры кода.

Метод 1: регулярные выражения
Одним из распространенных подходов к проверке чисел является использование регулярных выражений. Scala предоставляет мощную библиотеку регулярных выражений, которую можно использовать для этой цели. Вот пример фрагмента кода:

def isValidNumberUsingRegex(input: String): Boolean = {
  val regex = """^-?\d*\.?\d+$"""
  input.matches(regex)
}
// Usage:
val input1 = "123.45"
val input2 = "-98765"
println(isValidNumberUsingRegex(input1))  // true
println(isValidNumberUsingRegex(input2))  // true

Метод 2: анализ с обработкой исключений
Другой метод включает анализ строки как числа и обработку потенциальных исключений. Scala предоставляет различные числовые типы, такие как Int, Long, Floatи Double, которые можно использовать для разбор. Вот пример:

def isValidNumberUsingParsing(input: String): Boolean = {
  try {
    input.toInt
    true
  } catch {
    case _: NumberFormatException => false
  }
}
// Usage:
val input1 = "12345"
val input2 = "987.65"
println(isValidNumberUsingParsing(input1))  // true
println(isValidNumberUsingParsing(input2))  // false

Метод 3: пользовательская логика
В зависимости от ваших конкретных требований вы можете реализовать собственную логику для проверки чисел. Такой подход позволяет более детально контролировать процесс проверки. Вот пример использования простой пользовательской логики:

def isValidNumberUsingCustomLogic(input: String): Boolean = {
  input.forall(_.isDigit) || (input.startsWith("-") && input.tail.forall(_.isDigit))
}
// Usage:
val input1 = "12345"
val input2 = "-98765"
println(isValidNumberUsingCustomLogic(input1))  // true
println(isValidNumberUsingCustomLogic(input2))  // true

В этой статье мы рассмотрели три различных метода проверки чисел в Scala: использование регулярных выражений, анализ с обработкой исключений и реализацию пользовательской логики. Каждый метод имеет свои преимущества и особенности, зависящие от конкретного варианта использования. Понимая эти методы, вы сможете эффективно проверять числа в своих приложениях Scala.