我正在开发搜索文本字段。我有一个字符串数组,看起来像这样....
var keywords:[String] = ["dance, music and hippo", "apple juice, tomato"]
我尝试使用函数 contains 但效果不佳。
for i in 0..<keywordsArr.count {
if(!keywordsArr[i].contains(searchTextField.text!)){
print("removed \(keywordsArr[i])")
keywordsArr.removeAtIndex(i)
}
}
这是我正在使用的扩展。
extension String {
func contains(find: String) -> Bool{
return self.rangeOfString(find) != nil
}
}
结果应该是我正在用文本调用函数:“音乐”并且它应该返回该字符串的索引
最佳答案
您可以使用 filter
非常简洁地实现这一点,它返回一个仅包含闭包所含元素的数组。您还应该使用可选绑定(bind)来避免使用 searchTextField.text
if let text = searchTextField.text {
keywordsArr = keywordsArr.filter { $0.contains(text) }
}
关于arrays - Swift:在数组中的句子中搜索字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37861843/