美文网首页
iOS - NSRange与字符串截取、匹配和分隔

iOS - NSRange与字符串截取、匹配和分隔

作者: ShIwEn9 | 来源:发表于2019-03-26 16:45 被阅读0次

    一、NSRange

    1、NSRange的介绍

    NSRange是Foundation框架中比较常用的结构体, 它的定义如下:
        typedef struct _NSRange {
            NSUInteger location;
            NSUInteger length;
        } NSRange;
        NSRange用来表示事物的一个范围,通常是字符串里的字符范围或者数组里的元素范围
        NSRange有2个成员
        NSUInteger location : 表示该范围的起始位置
        NSUInteger length : 表示该范围内的长度
    

    2、NSRange的创建

    1), NSRange range;
        //通过结构体变量访问成员
        range.location = 3;
        range.length = 2;
    2),//结构体变量整体赋值
        range = (NSRange){5,3};
        NSRange r2 = {4,5};  //最简单的
    3),
        NSRange r3 = {.location = 3,.length = 5};
    4),OC中新增的(OC中建议使用这种)
        //NSMakeRange函数的作用给 NSRange结构体变量赋值
        NSRange r4 = NSMakeRange(3, 3);
        NSString *str = NSStringFromRange(r4);//将一个结构体转化成字符串
    

    二、字符串的截取和替换
    1,从指定位置from开始(包含起始位置)到尾部

    - (NSString *)substringFromIndex:(NSUInteger)from;
    

    2,从字符串的开头一直截取到指定的位置to,' 不包含结束位置 '

    - (NSString *)substringToIndex:(NSUInteger)to;
    

    3,按照所给出的NSRange从字符串中截取子串

    - (NSString *)substringWithRange:(NSRange)range;
    

    4,字符串截取练习

    练习一:获取itcast标签中的内容
     NSString *str = @"<hello>tangFeng</hello>";
    //  @">"  loc+1
    NSUInteger loc = [str rangeOfString:@">"].location + 1;  //"t"得位置
    //  @"</" loc
    NSUInteger len = [str rangeOfString:@"</"].location - loc;  //要截取的字符的长度
    // 构建 ruange
     NSRange r2 = NSMakeRange(loc, len);
    // 截取
    NSString *subStr = [str substringWithRange:r2];
            
    练习二:抽取指定范围的字符串      
    NSString *string1 = @"0123456789";
    NSRange range1 = NSMakeRange(0, 4);//NSMakeRange这个函数的作用是从第0位开始计算,长度为4
    NSLog(@"从第0个字符开始,长度为4的字符串是:%@",[string1 substringWithRange:range1]);
    NSLog(@"抽取从头开始到第4个字符:%@",[string1 substringToIndex:4]);
    NSLog(@"抽取从第6个字符开始到末尾:%@",[string1 substringFromIndex:6]);
    

    5.字符串的匹配:

    根据一个NSString匹配得到的下表

    例:NSString*string =@”sdfsfsfsAdfsdf”;
    NSRangerange = [stringrangeOfString:@”f”];
    

    6.分隔字符串

    NSString*string =@”sdfsfsfsAdfsdf”;
    //从字符A中分隔成2个元素的数组
    NSArray *array = [string componentsSeparatedByString:@”A”]; 
    NSLog(@”array:%@”,array); 
    //结果是adfsfsfs和dfsdf
    

    相关文章

      网友评论

          本文标题:iOS - NSRange与字符串截取、匹配和分隔

          本文链接:https://www.haomeiwen.com/subject/ffbhvqtx.html