在iOS Swift中搜索多个子字符串的字符串

时间:2015-10-06 19:57:13

标签: ios string swift swift2

我正在使用一系列成分(盐,水,面粉,糖),并且想要搜索此字符串以查看列表中是否有特定项目(盐,面粉)

这是到目前为止的代码

let ingredientList = (JSONDictionary as NSDictionary)["nf_ingredient_statement"] as! String

if ingredientList.lowercaseString.rangeOfString("salt") != nil {
    print("Salt Found!")
}

在不重复if语句的情况下,实现搜索多个子字符串的最佳方法是什么?

实际项目将搜索十几个子字符串,12个if语句是一个非常尴尬的解决方案。

1 个答案:

答案 0 :(得分:4)

你应该使用for循环。

for ingredient in ["salt", "pepper"] {
    if ingredientList.rangeOfString(ingredient) != nil {
        print("\(ingredient) found")
    }
}

更好的是,将此for循环添加为String类的扩展名。

extension String {

    func findOccurrencesOf(items: [String]) -> [String] {
        var occurrences: [String] = []

        for item in items {
            if self.rangeOfString(item) != nil {
                occurrences.append(item)
            }
        }

        return occurrences
    }

}

然后你可以得到这样的事件:

var items = igredientList.findOccurrencesOf(["salt", "pepper"])