ios 开发中获取字符串中重复的字符的rang -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    iOS 开发中经常会遇到处理字符串的问题,对于一个字符串经常会遇见里面包含重复的字符需要对重复的字符进行处理,下面的代码就是对重复字符进行处理的操作,具体代码如下所示:

/** *  返回重复字符的location * *  @param text     初始化的字符串 *  @param findText 查找的字符 * *  @return 返回重复字符的location */- (NSMutableArray *)getRangeStr:(NSString *)text findText:(NSString *)findText{    NSMutableArray *arrayRanges = [NSMutableArray arrayWithCapacity:20];    if (findText == nil && [findText isEqualToString:@""]) {        return nil;    }    NSRange rang = [text rangeOfString:findText];    if (rang.location != NSNotFound && rang.length != 0) {        [arrayRanges addObject:[NSNumber numberWithInteger:rang.location]];        NSRange rang1 = {0,0};        NSInteger location = 0;        NSInteger length = 0;        for (int i = 0;; i++)        {            if (0 == i) {                location = rang.location + rang.length;                length = text.length - rang.location - rang.length;                rang1 = NSMakeRange(location, length);            }else            {                location = rang1.location + rang1.length;                length = text.length - rang1.location - rang1.length;                rang1 = NSMakeRange(location, length);            }            rang1 = [text rangeOfString:findText options:NSCaseInsensitiveSearch range:rang1];            if (rang1.location == NSNotFound && rang1.length == 0) {                break;            }else                [arrayRanges addObject:[NSNumber numberWithInteger:rang1.location]];        }        return arrayRanges;    }    return nil;}

    返回的数组对象就是重复字符在text 中的location, 使用方式是通过便利的形式,获取获取rang={array[i], findText.length}

最新文章