gpt4 book ai didi

iphone - NSString 的 enumerateSubstrings 不包含符号

转载 作者:行者123 更新时间:2023-12-03 21:20:37 25 4
gpt4 key购买 nike

当使用 NSString 的 enumerateSubstringsInRange:options:usingBlock: 并将选项设置为 NSStringEnumerationByWords 时,它不包含诸如 /*// 应该像单词一样对待,因为它们之间用空格分隔。

我还尝试使用 NSStringEnumerationByCompositedCharacterSequences 但即使没有此选项,它似乎也会做完全相同的事情,它只是遍历每个字母。

他们没有办法枚举每个由空格分隔的子字符串吗?听起来很简单,但没有办法使用 enumerateSubstringsInRange:options:usingBlock: 来做到这一点。

编辑

我还使用了选项NSEnumerationReverse来向后遍历子字符串。

最佳答案

您可以使用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
}];

关于iphone - NSString 的 enumerateSubstrings 不包含符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5141848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com