Je veux obtenir un personnage quelque part dans une NSSsortingng. Je veux que le résultat soit un NSSsortingng.
C’est le code que j’utilise pour obtenir un seul caractère à l’index:
[[s subssortingngToIndex:i] subssortingngToIndex:1]
Y a-t-il une meilleure façon de le faire?
Cela permettra également de récupérer un caractère à l’index i en tant que NSSsortingng, et vous n’utilisez qu’une structure NSRange plutôt qu’une NSSsortingng supplémentaire.
NSSsortingng * newSsortingng = [s subssortingngWithRange:NSMakeRange(i, 1)];
Si vous voulez simplement obtenir un caractère d’un NSSsortingng, vous pouvez essayer ceci.
- (unichar)characterAtIndex:(NSUInteger)index;
Utilisé comme ça:
NSSsortingng *originalSsortingng = @"hello"; int index = 2; NSSsortingng *theCharacter = [NSSsortingng ssortingngWithFormat:@"%c", [originalSsortingng characterAtIndex:index-1]]; //returns "e".
Votre suggestion ne fonctionne que pour des caractères simples comme ASCII. NSSsortingngs stocke unicode et si votre personnage est long de plusieurs fois, vous pourriez vous retrouver avec du charabia. Utilisation
- (NSRange)rangeOfComposedCharacterSequenceAtIndex:(NSUInteger)index;
Si vous voulez déterminer le nombre d’unichars de votre personnage. Je l’utilise pour parcourir mes chaînes afin de déterminer où se trouvent les bordures des personnages.
Être entièrement unicode, c’est un peu de travail, mais cela dépend des langues que vous utilisez. Je vois beaucoup de texte asiatique, donc la plupart des personnages débordent d’un espace et c’est ce que je dois faire.
NSMutableSsortingng *mySsortingng=[NSMutableSsortingng ssortingngWithFormat:@"Malayalam"]; NSMutableSsortingng *revSsortingng=@""; for (int i=0; i