Swift:如何检查字符串中关键字是否部分出现

问题描述

我想检查一个字符串是否包含一组关键字中的至少两个或50%。

我目前正在检查包含所有关键字的字符串

 var keywords = ["house","floor","cleaner"] 
 let string = "SWIFFER WETJET FLOOR CLEANER HOUSE SOLUTION REFILL,LAvendER,1 CT"
 let string2 = "FABULOSO ALL PURPOSE CLEANER,LAvendER - 169 FL OZ"

 let success = !keywords.contains(where: { !generatedString.contains($0) })

这有效,如果所有关键字都在字符串中,则返回true。现在,我只想检查字符串中至少两个或50%的关键字。

所以成功也将为string2返回true。 如何对字符串中至少两个或50%的关键字实施检查?

解决方法

尝试

let keywordsCount = keywords.filter({ string.lowercased().contains($0.lowercased()) }).count

if keywordsCount >= keywords.count / 2 {
    print("Success")
} else {
    print("Failure")
}
,

过滤和计数包含在字符串中的关键字。

  let count = keywords.filter { generatedString.contains($0) }.count

然后比较计数为2%或50%或其他任何值