我正在开发一个函数,用于提取字符串开头的数字。给定一个字符串,如果找到了数字,则应返回一个包含
为此,我使用正则表达式模式匹配将数字和剩余字符串分别匹配到两个变量中。然后我将数字转换为
问题在于:当提供的字符串开头没有数字时,模式匹配会失败,但我不知道如何检测它失败了,并在何时返回我的
有什么想法吗?
以下是我的代码:
Int
类型的提取的数字和剩余字符串的Success
类对象;否则返回一个Failure
类对象。为此,我使用正则表达式模式匹配将数字和剩余字符串分别匹配到两个变量中。然后我将数字转换为
Int
并返回。问题在于:当提供的字符串开头没有数字时,模式匹配会失败,但我不知道如何检测它失败了,并在何时返回我的
Failure
对象。有什么想法吗?
以下是我的代码:
sealed trait Result
case class Success(expr: String, result: Int) extends Result
case object Failure extends Result
def extractNumber(str: String) : Result = {
val pattern = "([0-9]+)(.*)".r
val pattern(count, rest) = str
if (pattern match failed) //How can I do that
return Failure
val number = count.toInt
return Success(rest, number)
}
extractNumber("100banana") match {
case Success(rest, nb) => println("sucess" + nb + ";" + rest)
case Failure => println("failure")
}