我想知道如何在 目标 C中将 NSArray [@"Apple", @"Pear ", 323, @"Orange"]转换为字符串。
[@"Apple", @"Pear ", 323, @"Orange"]
一种方法是迭代数组,对每个条目调用 description消息:
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];
NSString * result = [[array valueForKey:@"description"] componentsJoinedByString:@""];
我最近发现了一个关于 Objective-C String 的很好的教程:
Http://ios-blog.co.uk/tutorials/objective-c-strings-a-guide-for-beginners/
我觉得这个可能有点意思:
如果你想把字符串分割成一个数组,可以使用一个叫做 Component entsPartiatedByString 的方法来实现:
NSString *yourString = @"This is a test string"; NSArray *yourWords = [myString componentsSeparatedByString:@" "]; // yourWords is now: [@"This", @"is", @"a", @"test", @"string"]
如果您需要按照几个不同的字符集进行分割,请使用 NSString 的 Component entsPartiatedByPersontersInSet:
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]; }
NSString * str = [componentsJoinedByString:@""];
然后使用 DIC 或多个数组
我觉得 Sanjay 的答案差不多了,但是我用这种方式
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 中的方法 组件 JoinedByString,它可以进行连接并返回 NSString
顺便说一句,NSString有反向的方法 组件分离字符串,做的分裂,给你 NSArray回来。
我知道的方法很简单。
var NSArray_variable = NSArray_Object[n] var stringVarible = NSArray_variable as String
n是数组中的内部位置 这是 SWIFT 语言。 它可能在 < strong > Objective C 中工作
n
Swift 3.0解决方案:
let string = array.joined(separator: " ")
NSArray *array = [NSArray arrayWithObjects:@"One",@"Two",@"Three", nil]; NSString *stringFromArray = [array componentsJoinedByString:@" "];
第一行用对象初始化数组。 第二行通过在“”中添加字符串来连接该数组的所有元素,并返回一个字符串。
目标 C 溶液
NSArray * array = @[@"1", @"2", @"3"]; NSString * stringFromArray = [[array valueForKey:@"description"] componentsJoinedByString:@"-"]; // "1-2-3"
在 Swift中寻找解决方案的人
Swift
如果数组包含字符串,则可以使用 String 的 join 方法:
var array = ["1", "2", "3"] let stringFromArray = "-".join(array) // "1-2-3"
在 Swift 2中:
var array = ["1", "2", "3"] let stringFromArray = array.joinWithSeparator("-") // "1-2-3"
在 Swift 3 & 4
var array = ["1", "2", "3"] let stringFromArray = array.joined(separator: "-") // "1-2-3"