要求:现服务器返回一个字符串数组,数组中允许出现重复字符串且字符串数组是按在字符串中的位置从前到后进行的排序,续找出数组中每一个字符串在一个字符串中的位置
//模拟服务器返回的字符串数组
NSArray *arr = @[@"小明",@"小华",@"小明",@"小华"];
//要进行查找的字符串
NSString *str = @"我小明小华额托起我问他小明地方时小华";
//初始查找范围
NSRange rang0 = NSMakeRange(0, str.length);
// NSLog(@"rang0 === %@",NSStringFromRange(rang0));
for (NSInteger i=0; i<arr.count; i++) {
//取出每一个要进行位置查找的字符串
NSString *nameStr = arr[i];
// NSRange range = [str rangeOfString:nameStr];
//
// NSLog(@"%@",NSStringFromRange(range));
// 不区分大小写的在字符串str的rang0范围内查找字符串nameStr的位置
NSRange rang1 = [str rangeOfString:nameStr options:NSCaseInsensitiveSearch range:rang0];
NSLog(@"rang1 === %@",NSStringFromRange(rang1));
// 上一个字符串已经查找完成,缩小查找范围为上一个字符串的末尾开始,长度为总长度减去到上一个字符串结尾的长度,即是上一个字符串的末尾到str的结尾
rang0 = NSMakeRange(rang1.location +rang1.length, str.length-rang1.location -rang1.length);
// NSLog(@"rang0 === %@\n",NSStringFromRange(rang0));
}
网友评论