在Objective-C中将NSArray转换为NSString
我想知道如何将NSArray [@"Apple", @"Pear ", 323, @"Orange"]
转换为Objective-C中的string。
NSString * result = [[array valueForKey:@"description"] componentsJoinedByString:@""];
一种方法是迭代数组,在每个项目上调用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];
我认为桑杰的回答几乎在那里,但我用这种方式
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
正如Sanjay暗示的那样 – 我使用了NSArray中的方法componentsJoinedByString来join并返回NSString
顺便说一句, NSString具有反向方法componentsSeparatedByString做分裂,并让你NSArray回来。
我最近发现了一个关于Objective-Cstring的非常好的教程:
http://ios-blog.co.uk/tutorials/objective-c-strings-a-guide-for-beginners/
我认为这可能是有趣的:
如果要将string拆分为数组,请使用名为componentsSeparatedByString的方法来实现此目的:
NSString *yourString = @"This is a test string"; NSArray *yourWords = [myString componentsSeparatedByString:@" "]; // yourWords is now: [@"This", @"is", @"a", @"test", @"string"]
如果你需要分割一组不同的字符,使用NSString的componentsSeparatedByCharactersInSet:
NSString *yourString = @"Foo-bar/iOS-Blog"; NSArray *yourWords = [myString componentsSeparatedByCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:@"-/"] ]; // yourWords is now: [@"Foo", @"bar", @"iOS", @"Blog"]
但请注意,分隔符string不能为空。 如果您需要将string分隔成单个字符,只需循环string的长度并将每个字符转换为新的string即可:
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:@""];
而你有DIC或多个arrays,然后用波纹pipe
NSString * result = [[array valueForKey:@"description"] componentsJoinedByString:@""];
NSArray *array = [NSArray arrayWithObjects:@"One",@"Second",@"Third", nil]; NSString *stringFromArray = [array componentsJoinedByString:@" "];
我知道的方式很简单。
var NSArray_variable = NSArray_Object[n] var stringVarible = NSArray_variable as String
n
是SWIFT语言中数组的内部位置。 它可能在目标C中工作
Swift 3.0解决scheme:
let string = array.joined(separator: ",")