zoukankan      html  css  js  c++  java
  • 递归搜寻NSString中重复的文本

    递归搜寻NSString中重复的文本

    效果

    源码

    https://github.com/YouXianMing/iOS-Project-Examples 中的 StringRange 项目

    //
    //  NSString+Range.h
    //  NSString
    //
    //  Created by YouXianMing on 16/5/22.
    //  Copyright © 2016年 YouXianMing. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    
    @interface NSString (Range)
    
    /**
     *  Finds and returns the ranges of a given string, within the given range of the receiver.
     *
     *  @param searchString searchString.
     *  @param mask         A mask specifying search options. The following options may be specified by combining them with the C bitwise OR operator: NSCaseInsensitiveSearch, NSLiteralSearch, NSBackwardsSearch, NSAnchoredSearch. See String Programming Guide for details on these options.
     *  @param range        serachRange.
     *
     *  @return Ranges.
     */
    - (NSArray <NSValue *> *)rangesOfString:(NSString *)searchString options:(NSStringCompareOptions)mask serachRange:(NSRange)range;
    
    @end
    //
    //  NSString+Range.m
    //  NSString
    //
    //  Created by YouXianMing on 16/5/22.
    //  Copyright © 2016年 YouXianMing. All rights reserved.
    //
    
    #import "NSString+Range.h"
    
    @implementation NSString (Range)
    
    - (NSArray <NSValue *> *)rangesOfString:(NSString *)searchString options:(NSStringCompareOptions)mask serachRange:(NSRange)range {
    
        NSMutableArray *array = [NSMutableArray array];
        [self rangeOfString:searchString range:NSMakeRange(0, self.length) array:array options:mask];
        
        return array;
    }
    
    - (void)rangeOfString:(NSString *)searchString
                    range:(NSRange)searchRange
                    array:(NSMutableArray *)array
                  options:(NSStringCompareOptions)mask {
    
        NSRange range = [self rangeOfString:searchString options:mask range:searchRange];
        
        if (range.location != NSNotFound) {
            
            [array addObject:[NSValue valueWithRange:range]];
            [self rangeOfString:searchString
                          range:NSMakeRange(range.location + range.length, self.length - (range.location + range.length))
                          array:array
                        options:mask];
        }
    }
    
    @end
  • 相关阅读:
    《常微分方程,王高雄》 习题 1.5,1.8(2)
    微分方程及边值问题:计算与建模 习题1.17-1.31
    打造自己备份的系统镜像
    打造自己备份的系统镜像
    ★一名“标题党”自我修炼的10大技巧
    ★一名“标题党”自我修炼的10大技巧
    ★数学上最大的数是多少?
    ★不容错过的PPT教程!
    ★不容错过的PPT教程!
    【★】电子产品降价的3大原因!
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/5574649.html
Copyright © 2011-2022 走看看