В 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.