ios 開發中擷取字串中重複的字元的rang
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}