11
votes

Nsstring à nsarray

Je veux diviser un nstring dans un nsarray . Par exemple, donné: xxx

je veux un nsarray comme: xxx

Comment faire cela avec objectif -C et cacao?


2 commentaires

Comment voulez-vous gérer des paires de substituts et des personnages composés de caractères UTF-16?


Vous devriez accepter une réponse


7 Réponses :


11
votes
NSMutableArray *chars = [[NSMutableArray alloc] initWithCapacity:[theString length]];
for (int i=0; i < [theString length]; i++) {
    NSString *ichar  = [NSString stringWithFormat:@"%C", [theString characterAtIndex:i]];
    [chars addObject:ichar];
}

1 commentaires

Il s'agit d'une solution naïve qui ne gère pas les paires de substitution ni les personnages composés, car @jeremyy a été résolu dans son commentaire sur la question. En outre, n'oubliez pas de libérer le tableau lorsque vous n'utilisez pas GC ou ARC.



4
votes

Ce lien contient des exemples pour diviser une chaîne en un Array basé sur des sous-chaînes et également basé sur des chaînes dans un ensemble de caractères. J'espère que le message peut vous aider.

Voici le code SNIP P>

NSMutableArray *characters = [[NSMutableArray alloc] initWithCapacity:[myString length]];
for (int i=0; i < [myString length]; i++) {
    NSString *ichar  = [NSString stringWithFormat:@"%c", [myString characterAtIndex:i]];
    [characters addObject:ichar];
}


3 commentaires

Envisagez d'améliorer votre message puisque votre réponse est essentiellement un lien. Voir: Les réponses contiennent simplement des liens ailleurs "bonnes réponses"? et Pourquoi reliera mal?


@Bavarieux, c'est assez? ;-)


@Bavarious d'accord, la réponse que le seul lien ne sont plus utiles une fois que l'URL est morte. Donc Empletack s'il vous plaît! Essayez de poster du code qui peut aider à l'avenir pour n'importe qui. Merci!!



12
votes

conversion xxx

journalisation xxx


console

c'est ce que la console est renvoyée < / p>


4 commentaires

Que diriez-vous de cela, si vous avez Nstring * mystring = @ "abcdef"; sans espace ??


Vous avez besoin de quelque chose pour le séparer.


Sinon, vous pouvez utiliser une "boucle" et sous-traitant les caractères dans des chaînes.


Ok, selon la réponse yan.kun s



1
votes

Sans boucle Vous pouvez utiliser ceci:

NSString *myString = @"ABCDEF";
NSMutableString *tempStr =[[NSMutableString alloc] initWithString:myString];

if([myString length] != 0)
{
    NSError  *error  = NULL;

    // declare regular expression object
    NSRegularExpression *regex =[NSRegularExpression regularExpressionWithPattern:@"(.)" options:NSMatchingReportCompletion error:&error];

    // replace each match with matches character + <space> e.g. 'A' with 'A '
    [regex replaceMatchesInString:tempStr options:NSMatchingReportCompletion range:NSMakeRange(0,[myString length]) withTemplate:@"$0 "];

    // trim last <space> character
    [tempStr replaceCharactersInRange:NSMakeRange([tempStr length] - 1, 1) withString:@""];

    // split into array
    NSArray * arr = [tempStr componentsSeparatedByString:@" "];

    // print
    NSLog(@"%@",arr);
}


0 commentaires

25
votes
A
B
C
D
E
F
𝍱
क्

2 commentaires

Certainement la bonne façon. J'ai fait une catégorie de la catégorie: gist.github.com/4634479


En Swift, cela ne prend qu'une seule ligne. Voir Stackoverflow.com/a/44675708/364446



-1
votes

à Swift, cela devient très simple.

SWIFT 3: P>

myString.map { String($0) }


0 commentaires

0
votes

SWIFT 4.2:

string to tableau xxx

sortie: ["Karin", carrie "," David "]]

matrice à la chaîne xxx

sortie:" Karin, Carrie, David "


0 commentaires