如何从第一个索引而不是char过滤字符串数组?

时间:2019-03-05 10:14:56

标签: ios swift xcode filter collections

我有很多国家。我需要使用搜索到的文本来搜索和更新数组,但是要从初始字符匹配开始,而不是字符串的任何地方。

例如:如果我在搜索中返回印度,印度尼西亚...而不是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 }
        }
    }

2 个答案:

答案 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

使用锚定搜索首字母。从头开始。