格式化字符串输出的数组项

时间:2010-10-27 15:41:32

标签: ios objective-c arrays

我正在尝试使用以下内容显示数组中的项目:

NSString *alertString = [NSString stringWithFormat:@"%@", path];

哪种方法很好,但是当我显示字符串时,它会以下列方式显示:


A,
B,
C,
d

有没有办法让它以不同的方式显示,例如所有在一行,没有括号,逗号或行返回,如下所示:

A B C D

2 个答案:

答案 0 :(得分:13)

您有几个选择。看起来数组中的对象有一个description方法,可以按照你想要的方式打印它们,所以它可能就像使用它一样简单:

NSString *alertString = [path componentsJoinedByString:@" "];

如果没有,你可以考虑这样的事情:

NSMutableString *s = [NSMutableString string];
[path enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    [s appendString:@" "];
    [s appendString:[obj someMethodThatFormatsTheObject]];
}];
NSString *alertString = [NSString stringWithString:s];

甚至:

NSMutableArray *a = [NSMutableArray array];
[path enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    [a addObject:[obj sometMethodThatFormatsTheObject]];
}];
NSString *alertString = [a componentsJoinedByString:@" "];

答案 1 :(得分:9)

如果path是NSArray,您可以使用the -componentsJoinedByString: method将数组中的所有字符串与所需的分隔符连接起来。

NSString* alertString = [path componentsJoinedByString:@" "];
相关问题