如何删除iOS SDK中两个string中的常见字母?

我如何删除两个string中的常见字母,并使用剩余的唯一字母生成一个新的string?

例如:

String 1= Optimus Prime, String 2= Deja Thoras, 

新的string应该是: Djaha

只要枚举string中的字符并删除匹配范围即可。 一定要search“无情”(即大写和小写字母之间的差异是不相关的)。 以下片段logging“Djaha”,正如开幕文章所期望的那样。

 NSString *firstString = @"Deja Thoras"; NSString *secondString = @"Optimus Prime"; NSMutableString *outputString = [NSMutableString stringWithString:firstString]; [outputString enumerateSubstringsInRange:NSMakeRange(0, firstString.length) options:NSStringEnumerationByComposedCharacterSequences usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) { if ([secondString rangeOfString:substring options:NSCaseInsensitiveSearch].location != NSNotFound) { [outputString deleteCharactersInRange:substringRange]; } }]; NSLog(@"%@", outputString); 

如果这是一个常见的操作,我会把代码放在一个类别中,方法名称如stringByRemovingMatchingCharactersInString:

这是一个避免字符枚举的基本方法:

 NSString *string1 = @"Deja Thoras"; NSString *string2 = @"Optimus Prime"; NSCharacterSet *filterSet = [NSCharacterSet characterSetWithCharactersInString:string2]; NSString *filteredString = [[string1 componentsSeparatedByCharactersInSet:filterSet] componentsJoinedByString:@""];