我想编写一种方法,该方法提供数组的人类可读字符串表示,必要时使用逗号空格(包括牛津逗号),并在末尾连接“和”。
例如,假设我有这些数组:
NSArray *nun = @[];
NSArray *won = @[@"The Loneliest"];
NSArray *too = @[@"Peas", @"Pod"];
NSArray *tree = @[@"Apple", @"Falls", @"Far, Far Away"];
我想写一个方法,如:
+ (NSString*) humanReadableListFromArray: (NSArray*) arr
{
// magic
}
当我通过我的数组时,我希望它们看起来像这样:
@""
@"The Loneliest"
@"Peas and Pod"
@"Apple, Falls, and Far, Far Away"
请注意,第一个只有 1 个 item,它只是第一个没有装饰的 item。第二个,正好有 2 个项目,没有逗号,但有连接的“和”。第三个,有超过 2 个项目,在每个项目之间包含一个逗号空格,最后一个项目and
在逗号空格之后和项目之前包含一个附加项。
在Objective C中是否有一种简短的方法可以做到这一点?我已经用 Java 等语言完成了这项工作,但我知道 Objective C 具有类似-(NSString*)[NSArray componentsJoinedByString:]
的方法可能会对此有所帮助。
用“and”替换字符串中的最后一个逗号没有回答这个问题。(Objective-C)因为它不处理最后一个数组项中的逗号。我还研究了诸如Objective-C Simplest way to create comma separator string from a array of objects 之类的问题,他们没有提到人类可读性的这一好部分。