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

Swift: How to check for partial occurrence of keywords in a string

我想检查一个字符串是否至少包含一组关键字的两个或 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([=11=]) })

如果所有关键字都在一个字符串中,这有效并且 return 为真。现在我只想检查字符串中至少两个或 50% 的关键字。

所以 string2 也会 return 成功。 如何检查字符串中至少两个或 50% 的关键字?

过滤并计算字符串中包含的关键字。

  let count = keywords.filter { generatedString.contains([=10=]) }.count

然后将计数与 2 或 50% 或其他值进行比较

试试,

let keywordsCount = keywords.filter({ string.lowercased().contains([=10=].lowercased()) }).count

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