一、NSRange
1侍郭、NSRange的介紹
NSRange是Foundation框架中比較常用的結(jié)構(gòu)體, 它的定義如下:
typedef struct _NSRange {
NSUInteger location;
NSUInteger length;
} NSRange;
NSRange用來表示事物的一個(gè)范圍,通常是字符串里的字符范圍或者數(shù)組里的元素范圍
NSRange有2個(gè)成員
NSUInteger location : 表示該范圍的起始位置
NSUInteger length : 表示該范圍內(nèi)的長度
2询吴、NSRange的創(chuàng)建
1), NSRange range;
//通過結(jié)構(gòu)體變量訪問成員
range.location = 3;
range.length = 2;
2),//結(jié)構(gòu)體變量整體賦值
range = (NSRange){5,3};
NSRange r2 = {4,5}; //最簡單的
3),
NSRange r3 = {.location = 3,.length = 5};
4),OC中新增的(OC中建議使用這種)
//NSMakeRange函數(shù)的作用給 NSRange結(jié)構(gòu)體變量賦值
NSRange r4 = NSMakeRange(3, 3);
NSString *str = NSStringFromRange(r4);//將一個(gè)結(jié)構(gòu)體轉(zhuǎn)化成字符串
二、字符串的截取和替換
1,從指定位置from開始(包含起始位置)到尾部
- (NSString *)substringFromIndex:(NSUInteger)from;
2,從字符串的開頭一直截取到指定的位置to,' 不包含結(jié)束位置 '
- (NSString *)substringToIndex:(NSUInteger)to;
3,按照所給出的NSRange從字符串中截取子串
- (NSString *)substringWithRange:(NSRange)range;
4,字符串截取練習(xí)
練習(xí)一:獲取itcast標(biāo)簽中的內(nèi)容
NSString *str = @"<hello>tangFeng</hello>";
// @">" loc+1
NSUInteger loc = [str rangeOfString:@">"].location + 1; //"t"得位置
// @"</" loc
NSUInteger len = [str rangeOfString:@"</"].location - loc; //要截取的字符的長度
// 構(gòu)建 ruange
NSRange r2 = NSMakeRange(loc, len);
// 截取
NSString *subStr = [str substringWithRange:r2];
練習(xí)二:抽取指定范圍的字符串
NSString *string1 = @"0123456789";
NSRange range1 = NSMakeRange(0, 4);//NSMakeRange這個(gè)函數(shù)的作用是從第0位開始計(jì)算亮元,長度為4
NSLog(@"從第0個(gè)字符開始猛计,長度為4的字符串是:%@",[string1 substringWithRange:range1]);
NSLog(@"抽取從頭開始到第4個(gè)字符:%@",[string1 substringToIndex:4]);
NSLog(@"抽取從第6個(gè)字符開始到末尾:%@",[string1 substringFromIndex:6]);
5.字符串的匹配:
根據(jù)一個(gè)NSString匹配得到的下表
例:NSString*string =@”sdfsfsfsAdfsdf”;
NSRangerange = [stringrangeOfString:@”f”];
6.分隔字符串
NSString*string =@”sdfsfsfsAdfsdf”;
//從字符A中分隔成2個(gè)元素的數(shù)組
NSArray *array = [string componentsSeparatedByString:@”A”];
NSLog(@”array:%@”,array);
//結(jié)果是adfsfsfs和dfsdf