Dans Swift 3, je veux créer un tableau de chaîne correspondante (insensible à la casse) à partir du tableau de chaîne: -
J'utilise ce code, mais il est sensible à la casse,
let filteredArray = self.arrCountry.filter { $0.contains("india") }
comment puis-je faire cela ... supposons que j'ai un tableau de chaînes maître appelé arrCountry, je veux créer un autre tableau de toutes les chaînes contenant "india" (insensible à la casse).
Quelqu'un peut m'aider.
Vous pouvez essayer avec localizedCaseInsensitiveContains
let filteredArray = self.arrCountry.filter { $0.localizedCaseInsensitiveContains("india") }
localizedCaseInsensitiveContains
Renvoie une valeur booléenne indiquant si la chaîne donnée n'est pas vide et contenue dans cette chaîne par une recherche non littérale insensible à la casse, en tenant compte des paramètres régionaux actuels. Une opération insensible à la casse indépendante des paramètres régionaux et d'autres besoins peuvent être atteints en appelant range (of: options: range: locale :).Équivalent à: range (of: other, options: .caseInsensitiveSearch, locale: Locale.current)! = Nil
Il vaut mieux utiliser
.filter { $0.range(of: "india", options: .caseInsensitive) != nil }
Le moyen le plus simple pourrait être de mettre en minuscule vos chaînes et de comparer:
Swift 3 et supérieur
let filteredArray = self.arrCountry.filter { $0.lowercased() == "india" }