NSString 内查找多个重复指定子字符串的个数,位置

字符串中查找单个不重复子字符串有"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

当然,也可以把这个两个方法写成NSString的Category方便使用
搞定,还有别的方法可以实现,这里只写了其中一种方法,欢迎大家指正

你可能感兴趣的:(NSString 内查找多个重复指定子字符串的个数,位置)