gpt4 book ai didi

objective-c - 使用 componentsSeparatedByString 从 NSString 中删除多个单词

转载 作者:行者123 更新时间:2023-12-04 05:08:53 27 4
gpt4 key购买 nike

我想知道是否有使用 componentsSeperatedByString 删除多个单词/标签的好方法在 NSString ?让我印象深刻的唯一想法是调用此方法 3 次以删除所有要删除的已定义标签。但这似乎不是那么好的风格。那么有没有更好的方法来做到这一点?

#define REMOVE_TAG_1 @"cs193pspot"
#define REMOVE_TAG_2 @"portrait"
#define REMOVE_TAG_3 @"landscape"

// Formats the subtitle by removing the defined tags
- (NSString *)formatSubtitle:(NSString *)subtitle
{
NSArray *tagsToKeep = [subtitle componentsSeparatedByString:[NSString stringWithFormat:@"%@",REMOVE_TAG_1]];

NSLog(@"%@",[tagsToKeep description]);
return nil;
}

最佳答案

假设标签用空格分隔,我首先将字符串拆分为一个单词数组:

NSArray *arrayOfTagsToFilter = @[ REMOVE_TAG_1, REMOVE_TAG_2, REMOVE_TAG_3 ];
NSArray *allTags = [subtitle componentsSeparatedByString:@" "];

然后使用 NSPredicate 过滤数组获取数组中应删除的标签:
NSArray *tagsToRemove = [allTags filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"SELF IN %@", arrayOfTagsToFilter]];

NSMutableArray *tagsToKeep = [NSMutableArray arrayWithArray:allTags];

[tagsToKeep removeObjectsInArray:tagsToRemove];

关于objective-c - 使用 componentsSeparatedByString 从 NSString 中删除多个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15140992/

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