5

我试图在一行上打印出一个 NSSet,逗号分隔但没有尾随逗号或空格。我怎样才能做到这一点?

我知道这适用于数组:

    NSMutableString *outputStringArray = [[NSMutableString alloc] init];
    NSMutableArray *myArray = [[NSMutableArray alloc] initWithCapacity:10];

    for (int k = 0; k < [myArray count]; k++) {
        [outputStringArray appendFormat:@"%@, ", [myArray objectAtIndex:k]];
    }
    NSLog(@"%@", [outputStringArray substringToIndex:[outputStringArray length] - 2]);

但由于集合没有索引,我不能这样做。

谢谢

4

2 回答 2

10

您总是可以从一个集合中创建一个数组,如下所示:

NSArray *myArray = [mySet allObjects];

之后,您可以使用以下命令获取字符串componentsJoinedByString:

NSString *str = [myArray componentsJoinedByString:@", "];

当然,您可以使用类似于您帖子中的简单循环来实现相同的效果:

BOOL isFirst = YES;
for (id element in mySet) {
    if (!isFirst) {
        [outputStringArray appendString:@", "];
    } else {
        isFirst = NO;
    }
    [outputStringArray appendFormat:@"%@", element];
}
于 2013-03-13T10:07:12.707 回答
7

将集合中的对象作为数组获取并使用componentsJoinedByString:

NSSet *myset = ....;
NSString *joinedString = [[myset allObjects] componentsJoinedByString:@", "];
于 2013-03-13T10:07:38.143 回答