字符串中查找单个不重复子字符串有"rangeOfString"这个方法可以找到,但是多个重复的字符串,就坑爹了,没有现成的方法,只有设置options进行有限的区分
总结两个方法:一个获取个数.一个获取位置
1 获取重复子字符串个数
//利用替换先把重复元素替换掉,再根据length长度做判断
- (NSInteger )getDuplicateSubStrCountInCompleteStr:(NSString *)completeStr withSubStr:(NSString *)subStr
{NSInteger subStrCount = [completeStr length] - [[completeStr stringByReplacingOccurrencesOfString:subStr withString:@""] length];return subStrCount / [subStr length];
}
2 获取重复子字符串位置
//利用切分先得数组,再根据索引计算
- (NSMutableArray *)getDuplicateSubStrLocInCompleteStr:(NSString *)completeStr withSubStr:(NSString *)subStr
{NSArray * separatedStrArr = [completeStr componentsSeparatedByString:subStr];NSMutableArray * locMuArr = [[NSMutableArray alloc]init];NSInteger index = 0;for (NSInteger i = 0; i<separatedStrArr.count-1; i++) {NSString * separatedStr = separatedStrArr[i];index = index + separatedStr.length;NSNumber * loc_num = [NSNumber numberWithInteger:index];[locMuArr addObject:loc_num];index = index+subStr.length;}return locMuArr;
}
当然,也可以把这个两个方法写成NSString的Category方便使用
搞定,还有别的方法可以实现,这里只写了其中一种方法,欢迎大家指正