Как удалить диакритические символы из строки в Swift?
Как удалить диакритические знаки (или акценты) из String
(например, изменить «één» to «een») в Swift? Должен ли я вернуться к NSString
или это можно сделать в Swift?
- Как использовать метод экземпляра как обратный вызов для функции, которая принимает только func или буквальное закрытие
- Модуль, скомпилированный с помощью swift 3.0, не может быть импортирован в Swift 3.0.1
- Как загрузить URL-адрес в UIWebView в Swift?
- Операторы «++» и «-» устарели Xcode 7.3
- Есть ли способ для Interface Builder визуализировать представления IBDesignable, которые не переопределяют drawRect:
- Как создать методы classа, соответствующие протоколу, совместно используемому Swift и Objective-C?
- Почему .pch-файл недоступен в swift?
- Литье по типу Strange Swift
Вы можете напрямую работать с Swift String
(если импортируется «Foundation»):
let foo = "één" let bar = foo.stringByFoldingWithOptions(.DiacriticInsensitiveSearch, locale: NSLocale.currentLocale()) print(bar) // een
Swift 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"