2009-12-01 79 views

回答

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

這不會完成和調用[數組描述]一樣的事情嗎? – TechZen

+7

@TechZen - 不,因爲[數組描述]插入換行符和外部括號。 –

+0

這應該是選擇的答案! – pixelfreak

32

一種方法是迭代這個數組,要求每個項目description消息:

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

另一種方法是根據每個項目的類做一些事情:

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); 

如果你想要逗號和其他無關信息,你可以這樣做:

NSString * result = [array description]; 
+0

如果數組有很多元素,首先將所有元素轉換爲字符串(可能使用-description),並在之後使用'-componentsJoinedByString:'以'@「」'作爲參數對其進行連接。 –

+0

除非你只是調試,否則我會用Dave Delong的這個方法。 – TechZen

10

我最近發現的Objective-C的字符串一個很好的教程:

http://ios-blog.co.uk/tutorials/objective-c-strings-a-guide-for-beginners/

而且我認爲這可能會感興趣:

如果你想將字符串分割成一個數組使用一個名爲componentsSeparatedByString的方法來實現這一點:

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

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

如果你需要在幾個不同的charact使用NSString的組件分離的字符集:

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

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

但請注意,分隔符字符串不能爲空。如果您需要通過字符串的長度爲一個字符串分隔成單個字符,只是環和每個字符轉換成一個新的字符串:

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]; 
} 
8
NSString * str = [componentsJoinedByString:@""]; 

,你有DIC或多個陣列,然後用波紋管

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

我認爲桑傑的答案是幾乎沒有,但我用這種方式

NSArray *myArray = [[NSArray alloc] initWithObjects:@"Hello",@"World", nil]; 
NSString *greeting = [myArray componentsJoinedByString:@" "]; 
NSLog(@"%@",greeting); 

輸出:

2015-01-25 08:47:14.830 StringTest[11639:394302] Hello World 

隨着桑傑曾暗示 - 我從NSArray中,它連接使用的方法componentsJoinedByString,給你回的NSString

BTW 的NSString具有反向方法componentsSeparatedByString,做的分裂並給你NSArray回來。

-1

我知道的方式很簡單。

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

n是陣列 這SWIFT語言在內部位置。 它可能在目標C工作

-1

夫特3.0溶液:

let string = array.joined(separator: ",") 
1
NSArray *array = [NSArray arrayWithObjects:@"One",@"Two",@"Three", nil]; 
NSString *stringFromArray = [array componentsJoinedByString:@" "]; 

第一行初始化與對象陣列。 第二行通過在「」中添加字符串並返回一個字符串來連接該數組的所有元素。

+0

儘管此代碼可能會回答這個問題,但提供有關爲何和/或代碼如何回答此問題的其他上下文可以提高其長期價值。 –

+0

非常感謝您的建議! –