Development Tip

Swift의 문자열에서 분음 부호를 제거하는 방법은 무엇입니까?

yourdevel 2020. 12. 10. 21:22
반응형

Swift의 문자열에서 분음 부호를 제거하는 방법은 무엇입니까?


StringSwift에서 a 에서 분음 부호 (또는 악센트)를 제거하는 방법 (예 : "één"을 "een"으로 변경)? NSStringSwift 로 돌아 가야 합니까 아니면 Swift 내에서 수행 할 수 있습니까?


Swift에서 직접 작업 할 수 있습니다 String( "Foundation"을 가져온 경우) :

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

@MartinR의 답변 업데이트… 누군가에게 유용 할 수있는 정렬 / 검색을위한 문자열을 제공 하는 Swift 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"

참고 URL : https://stackoverflow.com/questions/29521951/how-to-remove-diacritics-from-a-string-in-swift

반응형