Antworten:
NSString * result = [[array valueForKey:@"description"] componentsJoinedByString:@""];
[array description]
Zeilenumbrüche und äußere Klammern eingefügt werden.
NSString * myString = [array componentsJoinedByString:@""];
ein akzeptabler Ersatz dafür?
<ClassName: InstanceAddress>
. Das valueForKey
macht es die angegebene Eigenschaft für jedes Element abzurufen. In diesem Fall description
handelt es sich um eine NSString *
Eigenschaft von NSObject
, deren Getter durch ihre Unterklassen überschrieben werden kann.
Ein Ansatz wäre, über das Array zu iterieren und die description
Nachricht für jedes Element aufzurufen :
NSMutableString * result = [[NSMutableString alloc] init];
for (NSObject * obj in array)
{
[result appendString:[obj description]];
}
NSLog(@"The concatenated string is %@", result);
Ein anderer Ansatz wäre, etwas basierend auf der Klasse jedes Elements zu tun:
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);
Wenn Sie Kommas und andere irrelevante Informationen wünschen, können Sie einfach Folgendes tun:
NSString * result = [array description];
-description
) und sie anschließend -componentsJoinedByString:
mit @""
als Parameter zu verknüpfen .
Ich denke, Sanjays Antwort war fast da, aber ich habe sie so benutzt
NSArray *myArray = [[NSArray alloc] initWithObjects:@"Hello",@"World", nil];
NSString *greeting = [myArray componentsJoinedByString:@" "];
NSLog(@"%@",greeting);
Ausgabe :
2015-01-25 08:47:14.830 StringTest[11639:394302] Hello World
Als Sanjay angedeutet hatte - habe ich Methode componentsJoinedByString von NSArray , das tut Füge- und gibt Ihnen zurück NSString
BTW NSString verfügt über Komponenten der umgekehrten MethodeSeparatedByString , die die Aufteilung übernimmt und Ihnen NSArray zurückgibt.
Ich habe kürzlich ein wirklich gutes Tutorial zu Objective-C-Strings gefunden:
http://ios-blog.co.uk/tutorials/objective-c-strings-a-guide-for-beginners/
Und ich dachte, dass dies von Interesse sein könnte:
Wenn Sie die Zeichenfolge in ein Array aufteilen möchten, verwenden Sie eine Methode namens componentsSeparatedByString, um dies zu erreichen:
NSString *yourString = @"This is a test string";
NSArray *yourWords = [myString componentsSeparatedByString:@" "];
// yourWords is now: [@"This", @"is", @"a", @"test", @"string"]
Wenn Sie mehrere verschiedene Zeichen aufteilen müssen, verwenden Sie die Komponenten von NSString. SeparatedByCharactersInSet:
NSString *yourString = @"Foo-bar/iOS-Blog";
NSArray *yourWords = [myString componentsSeparatedByCharactersInSet:
[NSCharacterSet characterSetWithCharactersInString:@"-/"]
];
// yourWords is now: [@"Foo", @"bar", @"iOS", @"Blog"]
Beachten Sie jedoch, dass die Trennzeichenfolge nicht leer sein darf. Wenn Sie eine Zeichenfolge in ihre einzelnen Zeichen trennen müssen, durchlaufen Sie einfach die Länge der Zeichenfolge und konvertieren Sie jedes Zeichen in eine neue Zeichenfolge:
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:@""];
und Sie haben dic oder mehrere Array dann unten verwendet
NSString * result = [[array valueForKey:@"description"] componentsJoinedByString:@""];
NSArray *array = [NSArray arrayWithObjects:@"One",@"Two",@"Three", nil];
NSString *stringFromArray = [array componentsJoinedByString:@" "];
Die erste Zeile initialisiert ein Array mit Objekten. Die zweite Zeile verbindet alle Elemente dieses Arrays durch Hinzufügen der Zeichenfolge innerhalb des "" und gibt eine Zeichenfolge zurück.
Ziel C Lösung
NSArray * array = @[@"1", @"2", @"3"];
NSString * stringFromArray = [[array valueForKey:@"description"] componentsJoinedByString:@"-"]; // "1-2-3"
Wer nach einer Lösung sucht in Swift
Wenn das Array Zeichenfolgen enthält, können Sie die Verknüpfungsmethode der Zeichenfolge verwenden:
var array = ["1", "2", "3"]
let stringFromArray = "-".join(array) // "1-2-3"
In Swift 2:
var array = ["1", "2", "3"]
let stringFromArray = array.joinWithSeparator("-") // "1-2-3"
In Swift 3 & 4
var array = ["1", "2", "3"]
let stringFromArray = array.joined(separator: "-") // "1-2-3"