8
votes

Comment diviser Nstring en composants?

dans xcode, si j'ai un nstring contenant un numéro, c'est-à-dire @ "12345", comment puis-je diviser en une matrice représentant des composants, c'est-à-dire "1", "2", " 3 "," 4 "," 5 "... Il y a un composanteSeparatedbystring sur l'objet nstring , mais dans ce cas, il n'y a pas de délimiteur ...


0 commentaires

5 Réponses :


4
votes

Il peut sembler comme CaricatureAindex: ferait l'affaire, mais qui renvoie un Unichalar , qui n'est pas un type de données dérivé NsObject et donc ne peut pas être mettre dans une matrice directement. Vous auriez besoin de construire une nouvelle chaîne avec chaque Unichare.

Une solution plus simple consiste à utiliser SubstringwithRange: avec des gammes de 1 caractères. Exécutez votre chaîne via un simple pour (int i = 0; i <[longueur mystring]; i ++) boucle pour ajouter chaque plage de caractères à un nsmutableRray .


1 commentaires

Cela a fonctionné brillamment, merci beaucoup pour la réponse rapide :-)



1
votes

A nstring déjà est un tableau de ses composants, si par des composants, vous voulez dire des caractères uniques. Utilisez [longueur de chaîne] pour obtenir la longueur de la chaîne et [chaîne caractérisatindex:] pour obtenir les caractères.

Si vous avez vraiment besoin d'un tableau d'objets de chaîne avec un seul caractère, vous devrez créer ce tableau vous-même. Boucle sur les caractères de la chaîne avec un pour boucle, créez une nouvelle chaîne avec un seul caractère avec un seul caractère à l'aide de [nstring StringwithPlat:] et ajoutez-le à votre tableau. Mais cela n'est généralement pas nécessaire.


0 commentaires

0
votes

Je ne sais pas si cela fonctionne pour ce que vous voulez faire, mais: xxx

Assurez-vous de lire les docs sur UTF8String


0 commentaires

1
votes

Dans votre cas, puisque vous n'avez pas de délimiteur, vous devez obtenir des caractères séparés par xxx

ou celui-ci xxx

que La seule façon dont je vois, pour le moment.


0 commentaires

24
votes

Il existe une fonction de membre prête de Nstring pour le faire:

NSString* foo = @"safgafsfhsdhdfs/gfdgdsgsdg/gdfsgsdgsd";
NSArray* stringComponents = [foo componentsSeparatedByString:@"/"];


0 commentaires