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




(2)

@ MartinR के उत्तर के लिए अपडेट करें ... छँटाई / खोज के लिए एक स्ट्रिंग प्रदान करने के लिए एक स्विफ्ट 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"

स्विफ्ट से एक प्रकार का वृक्ष (या उच्चारण) को कैसे हटाएं (जैसे कि "" को "ईएनएन" बदलें) स्विफ्ट में? क्या मुझे 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




swift