Comment trier les chaînes Unicode (étrangères) dans mon application iPhone?Tri des chaînes Unicode
Répondre
Merci de votre aide.
localizedCaseInsensitiveCompare
cette API fera le tri par rapport à la localisation. Sinon, les chaînes de langues différentes seront traitées comme des chaînes Unicode et la comparaison échouera.
Voici la solution:
NSComparisonResult sortLocationsForStr(NSString* str1, NSString* str2, void *context)
{
return [str1 localizedCaseInsensitiveCompare:str2];
}
[myArrayToSort sortUsingFunction:sortLocationsForStr context:nil];
Toutes les chaînes d'Objective-C (NSString *) sont des chaînes Unicode. Ce sont des séquences de caractères Unicode (par opposition aux séquences d'octets codés). Vous pouvez trier un tableau de chaînes en utilisant les méthodes fournies par NSArray.
NSArray* myArray = [NSArray arrayWithObjects:@"はじめまして", @"русский язык", @"คนอ้วน ๆ", nil];
NSArray* mySortedArray = [myArray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
Cela trier les chaînes par leur ordre unicode, si vous avez une autre condition de tri puis fournir un sélecteur de tri personnalisé ou élaborer votre question.
Que voulez-vous "dans leur ordre Unicode"? Vous voulez dire dans l'ordre défini par l'algorithme Unicode Collation? Ce serait l'ordre Unicode. Si vous voulez dire un ordre de point de code, c'est de la pure ordure et ne produit pas un tri alphabétique. – tchrist
@tchrist: +1. Je suis d'accord que trier sur l'ordre des points n'est pas significatif. Cependant, la question ne mentionne pas du tout «ordre alphabétique». Pour tout ce que je sais, ils voulaient un tableau trié arbitrairement pour la recherche binaire? Je les ai encouragés à élaborer leur question et j'aurais élaboré ma réponse. Peut-être pourriez-vous créer une réponse expliquant comment utiliser l'algorithme Unicode Collation dans Objective-C? – Akusete
Si vous voulez trier en utilisant les descripteurs de tri, vous pouvez également trier comme ceci:
NSSortDescriptor *sorter = [NSSortDescriptor descriptorWithKey:@"description" ascending:YES];
NSArray* mySortedArray = [myArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:sorter]];
« description » OK fonctionne comme une clé pour les valeurs NSString, étant donné que la description est documentée pour se retourner. L'avantage de la route NSSortDescriptor est que vous pouvez avoir plus d'un descripteur de tri, ou vous pouvez choisir d'utiliser un tri décroissant à la place.
Si vous souhaitez trier un tableau de NSStrings avec un descripteur de tri, il est probablement préférable d'utiliser 'self' comme clé. http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Protocols/NSObject_Protocol/Reference/NSObject.html#//apple_ref/doc/uid/20000052-BBCGEBBJ – JeremyP
pour NSString, "description" est équivalent en ce qu'il renvoie toujours l'objet NSString lui-même. Je pense que c'est moins déroutant que "self" qui pourrait être mal interprété comme étant la classe faisant l'appel et non les objets dans le tableau ... –
- 1. C# tri des chaînes VS tri des chaînes Oracle
- 2. Lire des chaînes Unicode "crues" en Python
- 3. Comparaison et tri des noms de fichiers Unicode
- 4. Données de base (tri SQLite) tri personnalisé des chaînes
- 5. question abouut de tri des chaînes
- 6. Tri des chaînes contenant des nombres d'une manière conviviale
- 7. Unicode Python pas correctement le tri
- 8. Travailler avec des chaînes Unicode dans Delphi 7
- 9. Comment inclure des chaînes Unicode dans les doctests Python?
- 10. comparer des chaînes et unicode décodé dans python3
- 11. Python/Mako: Comment obtenir des chaînes/caractères Unicode correctement analysés?
- 12. Comment utiliser l'instruction 'LIKE' avec des chaînes Unicode?
- 13. Gestion des valeurs de substitution Unicode dans les chaînes Java
- 14. Stockage des chaînes Unicode vers SQL Server via ActiveRecord
- 15. Expressions régulières dans les chaînes Unicode
- 16. Conversion du texte en chaînes unicode
- 17. Chaînes python c-api et unicode
- 18. Comment comparer les chaînes Unicode en Javascript?
- 19. concaténant 2 chaînes Unicode - comment faire?
- 20. Liste liés Tri avec des chaînes en C
- 21. Tableau de tri contenant des chaînes dans l'objectif c
- 22. Comparaison de chaînes binaires/tri vs Comparaison de chaînes de dictionnaire/tri
- 23. Python - convertir des chaînes de caractères larges d'un fichier binaire en chaînes unicode Python
- 24. tableau de chaînes tri numérique en php
- 25. Tri d'une collection de chaînes numériques
- 26. chaînes de tri avec les caractères accentués en python
- 27. Tri avec le serveur sql et le classement et unicode
- 28. Comment comparer les chaînes unicode avec l'entité ref à une chaîne non-unicode
- 29. Vous cherchez une bonne bibliothèque de chaînes Unicode Delphi
- 30. Retirez les chaînes unicode dans le modèle rendu
Vous devez utiliser l'algorithme Unicode Collation. – tchrist