作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我如何比较这两个字符串:
val a = "fit bit versa"
val b = "fitbit"
val a = "go pro hero 6"
val b = "gopro"
val a = "hero go pro 6"
val b = "gopro"
val a = "hero 6 go pro"
val b = "gopro"
val a = "vegan protein powder"
val b = "vega"
def matchPattern(a:String, b: String):String=
{
val dd = a.split(" ")
val result = dd.map(_.toLowerCase())
if(result contains b.toLowerCase) true
else false
}
最佳答案
这是使用 sliding(i)
的一种方法,其中 i
范围从 2 到 a
中的字数, 组装所有可能连接的相邻单词的列表。然后检查是否b
完全匹配列表中的任何元素,如下所示:
def matchPattern(a: String, b: String): Boolean = {
val words = a.toLowerCase.split("\\s+")
val concats = (2 to words.size).foldLeft(words)(
(acc, i) => acc ++ words.sliding(i).map(_.mkString)
)
concats contains b.toLowerCase
}
matchPattern("Hero go Pro 6", "gopro")
// res1: Boolean = true
matchPattern("Hero go Pro 6", "gopro6")
// res2: Boolean = true
matchPattern("Vegan protein powder", "vega")
// res3: Boolean = false
关于regex - 如何将一个字符串与另一个之间有空格的字符串进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54082967/
我是一名优秀的程序员,十分优秀!