我有很多国家。我需要使用搜索到的文本来搜索和更新数组,但是要从初始字符匹配开始,而不是字符串的任何地方。
例如:如果我在搜索中返回印度,印度尼西亚...而不是ChINa ...
我创建了bleow方法,该方法查找整个字符串而不是初始字符。
此外,此函数没有任何范围,如何从字符串中获取范围?
func searchCountry(for string: String) {
if !string.isEmpty {
let filtered = countries?.filter {
$0.name?.range(of: string,
options: .caseInsensitive) != nil
}
guard let filteredCountries = filtered else { return }
}
}
答案 0 :(得分:3)
您也可以将其用于适当的输出
func searchCountry(for string: String?) {
if let searchText = string {
let filter = countries.filter({ $0.lowercased().hasPrefix(searchText.lowercased()) })
print(filter)
}
}
答案 1 :(得分:2)
$0.name?.range(of: string,options: [.anchored, .caseInsensitive]) != nil
使用锚定搜索首字母。从头开始。