所以我基本上有一系列的单词和短语。其中一些包含诅咒。我想创建一个方法来自动扫描数组中的每个单元以查找诅咒。如果它没有诅咒,将它添加到一个新数组中。
我意识到我可以用一堆 if
/else if
语句和 rangeOfString
方法来做到这一点,但我很震惊我有找不到 NSString
的方法来同时搜索一堆单词。
有什么我可能忽略的东西可用于扫描单个字符串以查找子字符串数组吗?
例如: 如果我有一系列短语,例如:
@[@"hey how are you",
@"what is going on?",
@"whats up dude?",
@"do you want to get chipotle?"]
我希望能够扫描然后派生一个新数组,该数组不包含以下数组中的任何单词:
@[@"you", @"hey"]
最佳答案
如果它是一个相当小的列表,只需遍历它检查每个单词。
如果它相当大,将“坏词”放在 NSOrderedSet
中,然后使用方法:containsObject:
。
如果要检查的单词数量不小,你也可以把要检查的单词放在一个 NSSet
中,将“坏词”放在另一个 NSSet
中,使用方法:intersectsSet:
。
例子:
NSArray *stringsToCheck = @[@"hey how are you", @"what is going on?", @"whats up dude?", @"do you want to get chipotle?"];
NSSet *badWords = [NSSet setWithArray:@[@"how", @"dude", @"yes"]];
for (NSString *line in stringsToCheck) {
NSSet *checkWords = [NSSet setWithArray:[line componentsSeparatedByString:@" "]];
NSLog(@"checkWords: %@", checkWords);
if ([checkWords intersectsSet:badWords]) {
NSLog(@"checkWords contains a bad word in: '%@'", [[checkWords allObjects] componentsJoinedByString:@" "]);
// Now search for the specific bad word if necessary.
}
}
NSLog输出:
checkWords 包含一个坏词:'你好吗,嘿'
关于ios - 在 objective-c 中,您将如何扫描字符串数组以获得一组子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23974937/