Подтвердить что ты не робот

Поиск нечувствительности к регистру в строковом массиве swift 3

В Swift 3 я хочу создать массив совпадающей строки (без учета регистра) из массива строк: -

Я использую этот код, но он чувствителен к регистру,

let filteredArray = self.arrCountry.filter { $0.contains("india") }

как я могу это сделать.. предположим, что у меня есть главный массив строк, называемый arrCountry, я хочу создать другой массив из всей строки, у которой в нем есть "india" (без учета регистра).

Кто-нибудь может мне помочь.

4b9b3361

Ответ 1

Вы можете попробовать с помощью localizedCaseInsensitiveContains

let filteredArray = self.arrCountry.filter { $0.localizedCaseInsensitiveContains("india") }

Ответ 2

localizedCaseInsensitiveContains
Возвращает логическое значение, указывающее является ли данная строка непустой и содержится в этой строке не зависящим от регистра, нелиберальным поиском, с учетом текущий язык. Локально-независимая операция без учета регистра и другие потребности, могут быть достигнуты путем вызова Диапазон (от: параметры: диапазон: Язык:).

Эквивалент: range (of: other, options:.caseInsensitiveSearch,       locale: Locale.current)!= nil

Лучше использовать

.filter { $0.range(of: "india", options: .caseInsensitive) != nil }

Ответ 3

Самым простым способом может быть строчная строчка и сравнение:

Свифт 3 и выше

let filteredArray = self.arrCountry.filter { $0.lowercased() == "india" }