Je me demande comment convertir un NSArray [1,@"Hello",3,4,5]
en une chaîne dans Objective-C. Un exemple Applescript est:
set the_array to {1,"Two", 3,4,5,6}
set the_array to the_array as string
Je me demande comment convertir un NSArray [1,@"Hello",3,4,5]
en une chaîne dans Objective-C. Un exemple Applescript est:
set the_array to {1,"Two", 3,4,5,6}
set the_array to the_array as string
Une approche consiste à parcourir le tableau en appelant le message description
sur chaque élément:
NSMutableString * result = [[NSMutableString alloc] init];
for (NSObject * obj in array)
{
[result appendString:[obj description]];
}
NSLog(@"The concatenated string is %@", result);
Une autre approche serait de faire quelque chose en fonction de la classe de chaque élément:
NSMutableString * result = [[NSMutableString alloc] init];
for (NSObject * obj in array)
{
if ([obj isKindOfClass:[NSNumber class]])
{
// append something
}
else
{
[result appendString:[obj description]];
}
}
NSLog(@"The concatenated string is %@", result);
Si vous voulez des virgules et d'autres informations superflues, vous pouvez simplement faire:
NSString * result = [array description];
J'ai récemment trouvé un très bon tutoriel sur Objective-C Chaînes:
http://ios-blog.co.uk/tutorials/objective-c-strings-a-guide-for-beginners/
Et j'ai pensé que cela pourrait intéresser:
Si vous voulez diviser la chaîne en un tableau d'utiliser une méthode appelée componentsSeparatedByString de réaliser ceci:
NSString *yourString = @"This is a test string";
NSArray *yourWords = [myString componentsSeparatedByString:@" "];
// yourWords is now: [@"This", @"is", @"a", @"test", @"string"]
si vous avez besoin de partager sur un ensemble de plusieurs caractères différents, l'utilisation NSString de componentsSeparatedByCharactersInset:
NSString *yourString = @"Foo-bar/iOS-Blog";
NSArray *yourWords = [myString componentsSeparatedByCharactersInSet:
[NSCharacterSet characterSetWithCharactersInString:@"-/"]
];
// yourWords is now: [@"Foo", @"bar", @"iOS", @"Blog"]
Notez cependant que le séparateur de chaîne ne peut pas être vide. Si vous avez besoin de séparer une chaîne de caractères dans chacun de ses personnages, juste une boucle sur la longueur de la chaîne et de convertir chaque caractère dans une nouvelle chaîne de caractères:
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];
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.