如何比较一个字符串与另一个之间有空格的字符串

use*_*267 5 regex scala string-comparison

如何比较这两个字符串:

val a = "fit bit versa"
val b = "fitbit"
Run Code Online (Sandbox Code Playgroud)

另一个例子

val a = "go pro hero 6"
val b = "gopro"
Run Code Online (Sandbox Code Playgroud)

另一个例子

val a = "hero go pro  6"
val b = "gopro"
Run Code Online (Sandbox Code Playgroud)

另一个例子

val a = "hero 6 go pro"
val b = "gopro"
Run Code Online (Sandbox Code Playgroud)

对于以上比较,我想获得“ true”,但在这里不行:

val a = "vegan protein powder"
val b = "vega"
Run Code Online (Sandbox Code Playgroud)

这应该是错误的。

目前我正在做:

def matchPattern(a:String, b: String):String=
{
      val dd = a.split(" ")
      val result = dd.map(_.toLowerCase())
      if(result contains b.toLowerCase) true 
      else false
}
Run Code Online (Sandbox Code Playgroud)

这适用于最后一种情况,但不适用于其余情况。

有什么建议吗?

Dim*_*ima -1

我猜是这样的(您的要求不完整,所以我将它们解释为“与给定字符串的开头部分完全匹配,以空格或行尾结尾,也许空格除外)。

  @tailrec
  def matchWords(input: Seq[Char], words: Seq[Char]): Boolean = (input, words) match {
     case (Seq(), Seq() | Seq(' ', _*)) => true
     case (Seq(), _) => false
     case (Seq(a, tail@_*), Seq(b, rest@_*)) if a == b => matchWords(tail, rest)
     case (_, Seq(' ', rest@_*)) => matchWords(input, rest)
     case _ => false
   }
Run Code Online (Sandbox Code Playgroud)