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

一、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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容