我想反转一个句子,但我不知道如何在快速枚举中正确获取下一个对象而没有任何问题:/
- (NSString *) reverseWords
{
NSString *result = [[NSString alloc] init];
NSArray *tab_words = [self componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSEnumerator *reversed = [tab_words reverseObjectEnumerator];
for (NSString *word in reversed)
{
result = [result stringByAppendingString:word];
// Bug here
if ([reversed nextObject])
result = [result stringByAppendingString:@" "];
}
return (result);
}
你好
答案 0 :(得分:1)
有一种更简单的方法来反转句子而不是枚举它。您可以获取反转数组,然后将其与空格连接(使用componentsJoinedByString:
方法)以生成另一个NSString
- (NSString *) reverseWords
{
NSArray *tab_words = [self componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSArray *reversed = [[tab_words reverseObjectEnumerator] allObjects];
NSString *result = [reversed componentsJoinedByString:@" "];
}
答案 1 :(得分:0)
我建议反转数组,然后使用NSArray的componentsJoinedByString:
方法。
有关反转数组的快速参考,请this SO question
这与现有代码非常相似,只需使用现有循环构建中间数组即可添加简单步骤。然后添加最后的componentsJoinedByString
调用以获取返回字符串。