一、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
网友评论