NSString from NSArray



我试图从数组创建一个字符串。但是,如何生成它是有条件的,如下所述。

NSArray *array=[NSArray arrayWithObjects:@"Hello",@"World",nil];
[array componentsJoinedByString:@","];

这会输出:Hello,World.

但是,如果第一个Item为空,那么是否有办法接收唯一的第二个Item

  1. 你好,@" =>你好
  2. @", World => World
  3. Hello,World => Hello,World

另一种方法是获取数组的可变副本并删除无效对象。例如:

NSMutableArray *array = [[NSArray arrayWithObjects:@"",@"World",nil] mutableCopy];
[array removeObject:@""]; // Remove empty strings
[array removeObject:[NSNull null]]; // Or nulls maybe
NSLog(@"%@", [array componentsJoinedByString:@","]);

您不能在NSArray *中存储nil值,因此答案是"不"。您需要自己迭代数组,并跟踪是否需要添加逗号。

NSMutableString *res = [NSMutableString string];
BOOL first = YES;
for(id item in array) {
    if (id == [NSNull null]) continue;
    // You can optionally check for item to be an empty string here
    if (!first) {
        [res appendString:@", "];
    } else {
        first = NO;
    }
    [res appendFormat:@"%@", item];
}


* NS集合中的nil值用NSNull对象表示。

最新更新