swift स्विफ्ट में एक स्ट्रिंग से विकृति को कैसे निकालना है?




(2)

स्विफ्ट में एक String (जैसे "परिवर्तन" "ईएनएन" से) डियाट्रिक्टिक्स (या उच्चारण) को कैसे हटाएं? क्या मुझे NSString वापस जाना होगा या स्विफ्ट के भीतर किया जा सकता है?


आप सीधे स्विफ्ट String पर काम कर सकते हैं (यदि "फाउंडेशन" आयात किया गया है):

let foo = "één"
let bar = foo.stringByFoldingWithOptions(.DiacriticInsensitiveSearch, locale: NSLocale.currentLocale())
print(bar) // een

स्विफ्ट 3:

let foo = "één"
let bar = foo.folding(options: .diacriticInsensitive, locale: .current)
print(bar) // een

@ मार्टिन के जवाब के लिए अपडेट करें ... छँटाई / खोज के लिए एक स्ट्रिंग प्रदान करने के लिए एक स्विफ्ट 3 एक्सटेंशन, जो किसी के लिए उपयोगी हो सकता है ...

extension String {
    var forSorting: String {
        let simple = folding(options: [.diacriticInsensitive, .widthInsensitive, .caseInsensitive], locale: nil)
        let nonAlphaNumeric = CharacterSet.alphanumerics.inverted
        return simple.components(separatedBy: nonAlphaNumeric).joined(separator: "")
    }
}

जैसे

print("Mÿ nâMe ís jÄço´B".forSorting) // "mynameisjacob"




swift