String
'dan (örneğin, "een" ile "een" arasındaki değişiklik) Swift'deki aksaklıklar nasıl kaldırılır? Ben NSString
geri dönmek zorunda yoksa Swift içinde yapılabilir mi?Nasıl Swift bir dize gelen aksan işaretleri kaldırmak için?
34
A
cevap
81
Bir Swift String
("Vakıf" ithal ise) doğrudan çalışabilir:
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
4
Güncelleme @ MartinR cevabı ... Bir Swift 3 birisi için yararlı olabilir sıralama/arama için bir dize sağlamak için uzatma ...
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: "")
}
}
ör
print("Mÿ nâMe ís jÄço´B".forSorting) // "mynameisjacob"
+1
Şimdi bu sıralama çok yerel ayarlara bağlı olmalıdır. Örneğin, benim "ch" dilinde "h" "i" arasındaki bir harftir. Sıralama için thay aksaklık duyarsız sadece doğru dize arama seçeneklerini kullanın. – Sulthan
İlgili konular
- 1. javascript fonksiyonu Fransız aksan işaretleri yerine javascript fonksiyonu arıyorum aksan işaretleri
- 2. nasıl bir dizede tüm önde gelen sıfırları kaldırmak için
- 3. Swift Koleksiyon Cell seçimini kaldırmak için nasıl
- 4. Google Finans API'sından JSON'un önde gelen işaretleri,
- 5. jQuery - Yeni dize dize gelen özel dize çıkarın ve dönüş
- 6. Dizgimin aksan içerdiğini nasıl anlarım? Örnek için
- 7. İçinde tırnak işaretleri içeren bir dize nasıl kullanılır?
- 8. Uygulamayı kaldırmak/kaldırmak için bir parola isteyin
- 9. Japon kana karakterleri arasında farklı aksan işaretleri olan "mantıksal" dönüşümler yapmanın bir yolu var mı? Japonca'da
- 10. Maç ApplicationIcon.jpg aksan rengi
- 11. Bir ipin içindeki tırnak işaretleri
- 12. NSString'e tırnak işaretleri nasıl ekleyebilirim?
- 13. JSON dize SWIFT
- 14. Swift Bool nasıl dönüştürülür? -> Dize?
- 15. "uniq" komutundan çıkışın önde gelen boşlukları nasıl kaldırılır? Eğer gelen boşluklar kaldırmak isterseniz
- 16. HTML aksan dönüştürme, ancak etiketlerini
- 17. Excel'den tırnak işaretleri veya kesme işaretleri kaçışından yararlanma
- 18. Swift için bir başlatıcı bulunamıyor Swift in
- 19. Farklı kaynaklardan gelen çıktıları tek bir kaynaktan kaldırmak için RestSharp özelliğini kullanın.
- 20. Dize kullanılarak gelen hata ayıklama jjeleri
- 21. Kaldırmak için NSTableView dışarı sürükleme
- 22. WPF içinde StringFormat'taki Tırnak İşaretleri Nasıl Kullanılır?
- 23. dönüştürme Dize Gelen tarih formatı YYYYMMDD ise
- 24. Regex.Replace kullanarak dize sayıları nasıl alınır?
- 25. IIS: komut satırından bir webapp'ı nasıl kaldırmak/silmek/kaldırmak?
- 26. C# Normal İfadeler, tek tırnak işaretleri arasındaki dize
- 27. regex match ünlem işaretleri java
- 28. ant görevleri bir kavanozdan kaldırmak için görev
- 29. Özü Dize ben bir çözümlü json gelen dize değerini ayıklamak için çalışıyorum json4s için Scala konsol oturumuna şu var json4s
- 30. Swift
Güzel çözüm! Teşekkürler. –
Teşekkür ederiz! Mükemmel çalıştı! –
Her zamanki gibi mükemmel cevap. StringByFoldingWithOptions'ın NSString'den bir yöntem olduğunu unutmayın. Bu, Swift 2'deki NSString ve String arasındaki kesintisiz köprülemenin avantajından yararlanır. Swift 3'teki işler farklıdır. –