Réponses:
NSString * result = [[array valueForKey:@"description"] componentsJoinedByString:@""];
[array description]
insère les nouvelles lignes et les parenthèses extérieures.
NSString * myString = [array componentsJoinedByString:@""];
un substitut acceptable à cela?
<ClassName: InstanceAddress>
. Le valueForKey
fait récupérer la propriété spécifiée pour chaque élément. Dans ce cas, description
est une NSString *
propriété from NSObject
, dont le getter peut être remplacé par ses sous-classes.
Une approche serait d'itérer sur le tableau, en appelant le description
message 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];
-description
) et de les concaturer ensuite en utilisant -componentsJoinedByString:
avec @""
comme paramètre.
Je pense que la réponse de Sanjay était presque là mais je l'ai utilisée de cette façon
NSArray *myArray = [[NSArray alloc] initWithObjects:@"Hello",@"World", nil];
NSString *greeting = [myArray componentsJoinedByString:@" "];
NSLog(@"%@",greeting);
Production :
2015-01-25 08:47:14.830 StringTest[11639:394302] Hello World
Comme Sanjay l'avait laissé entendre - j'ai utilisé des composants de méthodeJoinedByString de NSArray qui rejoignent et vous rendent NSString
BTW NSString a des composants de méthode inverseSeparatedByString qui effectue le fractionnement et vous rend NSArray .
J'ai récemment trouvé un très bon tutoriel sur les chaînes Objective-C:
http://ios-blog.co.uk/tutorials/objective-c-strings-a-guide-for-beginners/
Et j'ai pensé que cela pourrait être intéressant:
Si vous souhaitez diviser la chaîne en un tableau, utilisez une méthode appelée componentsSeparatedByString pour y parvenir:
NSString *yourString = @"This is a test string";
NSArray *yourWords = [myString componentsSeparatedByString:@" "];
// yourWords is now: [@"This", @"is", @"a", @"test", @"string"]
si vous avez besoin de fractionner sur un ensemble de plusieurs caractères différents, utilisez les composants de NSStringSeparatedByCharactersInSet:
NSString *yourString = @"Foo-bar/iOS-Blog";
NSArray *yourWords = [myString componentsSeparatedByCharactersInSet:
[NSCharacterSet characterSetWithCharactersInString:@"-/"]
];
// yourWords is now: [@"Foo", @"bar", @"iOS", @"Blog"]
Notez cependant que la chaîne de séparation ne peut pas être vide. Si vous avez besoin de séparer une chaîne en ses caractères individuels, parcourez simplement la longueur de la chaîne et convertissez chaque caractère en une nouvelle chaîne:
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];
}
NSString * str = [componentsJoinedByString:@""];
et vous avez un dic ou un tableau multiple puis utilisé ci-dessous
NSString * result = [[array valueForKey:@"description"] componentsJoinedByString:@""];
NSArray *array = [NSArray arrayWithObjects:@"One",@"Two",@"Three", nil];
NSString *stringFromArray = [array componentsJoinedByString:@" "];
La première ligne initialise un tableau avec des objets. La deuxième ligne joint tous les éléments de ce tableau en ajoutant la chaîne à l'intérieur du "" et renvoie une chaîne.
Solution Objectif C
NSArray * array = @[@"1", @"2", @"3"];
NSString * stringFromArray = [[array valueForKey:@"description"] componentsJoinedByString:@"-"]; // "1-2-3"
Ceux qui recherchent une solution Swift
Si le tableau contient des chaînes, vous pouvez utiliser la méthode de jointure de String:
var array = ["1", "2", "3"]
let stringFromArray = "-".join(array) // "1-2-3"
Dans Swift 2:
var array = ["1", "2", "3"]
let stringFromArray = array.joinWithSeparator("-") // "1-2-3"
Dans Swift 3 & 4
var array = ["1", "2", "3"]
let stringFromArray = array.joined(separator: "-") // "1-2-3"