arrays - Swift:在数组中的句子中搜索字符串

标签 arrays swift

我正在开发搜索文本字段。我有一个字符串数组,看起来像这样....

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/

相关文章:

java - 我在 Swift 和 Java 中的代码。 Swift 给出错误,但 Java 没有。有什么不同吗?

ios - 从另一个 View Controller 中的类快速绘制形状(以编程方式)

php - 在 Laravel 5.1 中将对象转换为数组

python - 在 numpy ndarray 中查找列表的长度

javascript - 与数组比较返回数组 _ lodash

swift - 使用 NSKeyedArchiver 保存并加载回来的对象为零

ios - <~~ 在 swift 中是什么意思?

arrays - 如何将值从一个数组添加到另一个数组?

java - 从 Java 中的字符串数组的索引命名类的实例的问题

ios - 错误 | [iOS] 文件模式 : The `source_files` pattern did not match any file