【发布时间】:2021-09-05 05:57:13
【问题描述】:
目前,在搜索中,我正在寻找一个包含一些字符的字符串:
func search(for keyword: String?) {
self.keyword = keyword
guard let keyword = keyword?
.folding(options: .diacriticInsensitive, locale: nil)
.lowercased(),
!keyword.isEmpty else {
filteredNames = names
return
}
filteredNames = names
.filter { $0.title.lowercased()
.folding(options: .diacriticInsensitive, locale: nil)
.contains(keyword)
}
}
问题是当列表更大时,它显示的内容超出预期。 我不会使用 .contain(keyword),而是 .starts(with: keyword),但它会错过一些结果。
假设我有一个数组: let myArray = ["name", "my name", "some name", "else string", "string", "stringname"] 因此,在查找“ame”时,它不会显示包含字符串的所有内容,而我想要的是仅在数组中的单词以该字符串开头时才显示。因此,当输入“名称”时,它应该返回“名称”、“某个名称”,但 NOT “字符串名称”
【问题讨论】: