Frage

Ich frage mich, wie ein konvertieren NSArray [@"Apple", @"Pear ", 323, @"Orange"] in eine Zeichenfolge in Objective-C .

War es hilfreich?

Lösung

NSString * result = [[array valueForKey:@"description"] componentsJoinedByString:@""];

Andere Tipps

Ein Ansatz wäre über das Array zu durchlaufen, die für jedes Element die description Nachricht Aufruf:

NSMutableString * result = [[NSMutableString alloc] init];
for (NSObject * obj in array)
{
    [result appendString:[obj description]];
}
NSLog(@"The concatenated string is %@", result);

Ein weiterer Ansatz wäre etwas für jedes Element der Klasse zu tun basiert:

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 fremde Informationen möchten, können Sie einfach tun:

NSString * result = [array description];

ich denke, Sanjay Antwort fast da war, aber ich benutzte es, auf diese Weise

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 - ich verwendete Methode componentsJoinedByString von NSArray, die Sie nicht Füge- und gibt zurück NSString

BTW NSString hat Reverse-Methode componentsSeparatedByString , die die Spaltung tut und geben Sie NSArray zurück.

Vor kurzem fand ich ein wirklich gutes Tutorial über Objective-C Strings:

http://ios-blog.co.uk/ tutorials / Objective-c-strings-a-guide-für-Anfänger /

Und ich dachte, dass dies von Interesse sein könnte:

Wenn Sie die Zeichenfolge in ein Array aufteilen eine Methode namens componentsSeparatedByString dies zu erreichen:

NSString *yourString = @"This is a test string";
    NSArray *yourWords = [myString componentsSeparatedByString:@" "];

    // yourWords is now: [@"This", @"is", @"a", @"test", @"string"]

Wenn Sie auf einer Reihe von verschiedenen Zeichen spalten, verwendet NSString des componentsSeparatedByCharactersInSet:

NSString *yourString = @"Foo-bar/iOS-Blog";
NSArray *yourWords = [myString componentsSeparatedByCharactersInSet:
                  [NSCharacterSet characterSetWithCharactersInString:@"-/"]
                ];

// yourWords is now: [@"Foo", @"bar", @"iOS", @"Blog"]

Beachten Sie jedoch, dass der Trenn-String nicht leer sein. Wenn Sie eine Zeichenfolge in seine einzelnen Zeichen zu trennen, nur Schleife durch die Länge der Zeichenfolge und konvertieren 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 haben Sie dic oder mehrere Array dann verwendet, unten

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 Leitung verbindet alle Elemente des Arrays durch die Zeichenfolge innerhalb des „“ Hinzufügen und gibt eine Zeichenfolge.

Objective C Lösung

NSArray * array = @[@"1", @"2", @"3"];
NSString * stringFromArray = [[array valueForKey:@"description"] componentsJoinedByString:@"-"];   // "1-2-3"

Diejenigen, die für eine Lösung in Swift suchen

Wenn das Array Strings enthält, können Sie die Zeichenfolge der Join-Methode 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"

So wie ich weiß, ist einfach.

var NSArray_variable = NSArray_Object[n]
var stringVarible = NSArray_variable as String

n ist die innere Position im Array Diese in SWIFT Sprache. Es könnte funktionieren in Objective C

Swift 3.0 Lösung:

let string = array.joined(separator: " ")
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top