问题描述
我想检查一个字符串是否包含一组关键字中的至少两个或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%或其他任何值