NSString *s1 = @"Hello there, I want to match similar words.";
NSString *s2 = @"Do you really want to match word, hello?";
NSCharacterSet *separatorSet = [NSCharacterSet characterSetWithCharactersInString:@" ?.,"];
NSArray *s1Array = [s1 componentsSeparatedByCharactersInSet:separatorSet];
NSArray *s2Array = [s2 componentsSeparatedByCharactersInSet:separatorSet];
NSMutableArray *resultArray = [NSMutableArray arrayWithCapacity:0];
for(int index = 0; index < [s1Array count]; index++){
NSString *compareString = [[s1Array objectAtIndex:index] lowercaseString];
NSUInteger findIndex = [s2Array indexOfObjectPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {
NSString *currentString = (NSString *)obj;
if([[currentString lowercaseString] isEqualToString:compareString] &&
![currentString isEqualToString:@""]){
return YES;
*stop = YES;
}else{
return NO;
}
}
];
if(findIndex !=NSNotFound){
[resultArray addObject:compareString];
}
}
NSLog(@"Result:%@",[resultArray description]);
不會工作,因爲@「你好」和@「你好」是不相等的,因此他們不會在結果陣列。 – 2012-03-03 07:27:40
坦克@Aravindhanarvi對於這樣的擔憂和快速反應,在添加小邏輯後效果很好。因爲大寫字母在比較之前已被轉換成小寫字母。 – rptwsthi 2012-03-06 08:24:34