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 }

 

posted @ 2015-09-20 19:31  A+P=S  阅读(574)  评论(0编辑  收藏  举报