当使用NSString的enumerateSubstringsInRange:options:usingBlock:
且选项设置为NSStringEnumerationByWords
时,它不包含/*
或//
等符号,这些符号应与字词类似由空格分隔。
我也尝试使用NSStringEnumerationByComposedCharacterSequences
,但即使没有这个选项,它似乎完全相同,它只是通过每一个字母。
他们无法枚举通过空格分隔的每个子字符串吗?使用enumerateSubstringsInRange:options:usingBlock:
提供这样做听起来很简单。
修改
我还使用选项NSEnumerationReverse
向后通过子串。
答案 0 :(得分:1)
你可以使用NSScanner来做这样的事情。这有点长远,但如果enumerate...
消息没有为你做,那么可能值得一看。
例如,您可以执行类似
的操作NSString *output = nil;
NSCharacterSet *whitespaceCharSet = [NSCharacterSet whitespaceCharacterSet];
NSScanner *scanner = [[NSScanner alloc] initWithString:someString];
// should skip leading whitespace and read everything up to the next whitespace
[scanner scanUpToCharactersFromSet:whitespaceCharSet intoSring:&output];
[scanner release];
一个粗略的例子,但NSScanner的文档非常简单。
编辑:或者,您可以执行以下操作:
NSString *someString = <...>; // get your string somehow
NSCharacterSet *charSet = [NSCharacterSet whitespaceAndNewlineCharacterSet];
NSArray *components = [someString componentsSeparatedByCharactersInSet:charSet];
[components
enumerateObjectsWithOptions:NSEnumerationReverse
usingBlock:^(id obj, NSUInteger index, BOOL *stop) {
// do stuff
}];