Check If A String Exists In An Array Case Insensitively


Answer :

Xcode 8 • Swift 3 or later

let list = ["kashif"] let word = "Kashif"  if list.contains(where: {$0.caseInsensitiveCompare(word) == .orderedSame}) {     print(true)  // true } 

alternatively:

if list.contains(where: {$0.compare(word, options: .caseInsensitive) == .orderedSame}) {     print(true)  // true } 

if you would like to know the position(s) of the element in the array (it might find more than one element that matches the predicate):

let indices = list.indices.filter { list[$0].caseInsensitiveCompare(word) == .orderedSame } print(indices)  // [0] 

You can also use localizedStandardContains method which is case and diacritic insensitive:

func localizedStandardContains<T>(_ string: T) -> Bool where T : StringProtocol 

Discussion This is the most appropriate method for doing user-level string searches, similar to how searches are done generally in the system. The search is locale-aware, case and diacritic insensitive. The exact list of search options applied may change over time.

let list = ["kashif"] let word = "Káshif"  if list.contains(where: {$0.localizedStandardContains(word) }) {     print(true)  // true } 

you can use

word.lowercaseString  

to convert the string to all lowercase characters


For checking if a string exists in a array (case insensitively), please use

listArray.localizedCaseInsensitiveContainsString(word)  

where listArray is the name of array and word is your searched text

This code works in Swift 2.2


Comments

Popular posts from this blog

Are Regular VACUUM ANALYZE Still Recommended Under 9.1?

Can Feynman Diagrams Be Used To Represent Any Perturbation Theory?