我正在尝试从 Array 创建一个字符串。但是,它应该如何生成是有条件的,如下所述。
NSArray *array=[NSArray arrayWithObjects:@"Hello",@"World",nil];
[array componentsJoinedByString:@","];
这将输出:Hello,World。
但是,如果第一个项目是空的,那么有没有办法接收唯一的第二个。
- 你好,@"" => 你好
- @"" , 世界 => 世界
- 你好,世界 => 你好,世界
我正在尝试从 Array 创建一个字符串。但是,它应该如何生成是有条件的,如下所述。
NSArray *array=[NSArray arrayWithObjects:@"Hello",@"World",nil];
[array componentsJoinedByString:@","];
这将输出:Hello,World。
但是,如果第一个项目是空的,那么有没有办法接收唯一的第二个。
另一种方法是获取数组的可变副本并删除无效对象。可能是这样的:
NSMutableArray *array = [[NSArray arrayWithObjects:@"",@"World",nil] mutableCopy];
[array removeObject:@""]; // Remove empty strings
[array removeObject:[NSNull null]]; // Or nulls maybe
NSLog(@"%@", [array componentsJoinedByString:@","]);
您不能将nil
值存储在NSArray
*中,因此答案是“否”。您需要自己迭代数组,跟踪是否需要添加逗号。
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];
}
nil
NS 集合中的值用NSNull
对象表示。