OC字符串查找
- OC中字符串查找操作
1 #import <Foundation/Foundation.h> 2 3 int main(int argc, const char * argv[]) { 4 @autoreleasepool { 5 //查找字符串 6 NSString *str1=@"abcdef"; 7 NSString *str2=@"abc"; 8 NSRange range1=[str1 rangeOfString:str2];//从str1字符串中找str2字符串出现的位置 9 NSLog(@"位置为:%ld,长度为:%ld",range1.location,range1.length);//打印结果:位置为:0,长度为:3 10 NSLog(@"%@",NSStringFromRange(range1));//location=0, length=3 11 12 NSString *str3=@"k"; 13 NSString *str4=@"aakcckdd"; 14 //求字符串str3在str4第一次出现的位置 15 NSRange r1=[str4 rangeOfString:str3];//rangeOfString 如果找不到,location为NSNotFound,length为0 16 //计算第一次str3在str4出现的位置并从此位置向后找,剩下的长度为str4总长度减去已经找到第一个所在位置的长度 17 //(r1.location+r1.length):表示第一次查找到符合的位置 18 //str4.length-(r1.location+r1.length):表示从上次查找到得位置起到最后所剩的长度 19 NSRange r2= {(r1.location+r1.length),str4.length-(r1.location+r1.length)}; 20 NSLog(@"第一次出现的位置为:%ld,长度为:%ld",r1.location,r1.length);//结果为:2,1 21 NSLog(@"第二次开始查找的位置为:%ld,需要查找的长度为:%ld",r2.location,r2.length);//结果为:3,5 22 //查找第二次str3在str4中出现的位置 23 NSRange range2=[str4 rangeOfString:str3 options:0 range:r2]; 24 NSLog(@"第二次出现的位置为:%ld,长度为:%ld",range2.location,range2.length);//结果为:5,1 25 26 //NSRange 结构体 27 /* typedef struct _NSRange { 28 NSUInteger location; 位置 29 NSUInteger length; 长度 30 } NSRange; 31 */ 32 33 } 34 return 0; 35 }