oc中的字符串 NSString

该博客是自己的学习笔记,写的比较随意。。。

1.创建字符串的方法:

 1 //1用NSString 直接创建
 2     NSString *str=@"hello world.";
 3     //2用一个已存在的字符串来创建另一个字符串     传的参是一个字符串的地址
 4     NSString *str2=[[NSString alloc] initWithString:str];
 5     =NSString *str2=[[NSString alloc] initWithString:@"hello world."];
 6     //3 传入一个c语言字符串的首字符地址
 7     //用C语言的字符串创建一个oc字符串对象
 8     NSString *str3=[[NSString alloc] initWithUTF8String:"hello world."];
 9     //4使用格式符,拼接成字符串。下面的结果为hello 5 A.
10     NSString *str4=[[NSString alloc] initWithFormat:@"hello %d %c.",5,'A'];
11 
12     //打印
13     NSLog(@"%@",str);
14     NSLog(@"%@",str2);
15     NSLog(@"%@",str3);
16     NSLog(@"%@",str4);
17     //通过alloc产生的要进行释放
18     [str2 release];
19     [str3 release];
20     [str4 release];
View Code

对应的创建临时字符串的方法:

1 //三种创建临时字符串的方法
2      //使用stringWith函数,都是自动释放的
3      //1将c的字符串转换成oc字符串对象
4 
5     NSString *str5=[NSString stringWithUTF8String:"hello world"];
6     //2使用格式符
7     NSString *str6=[NSString stringWithFormat:@"%d %@ %c",1,@"hello",'W'];
8    //3使用一个字符串创建另一个字符串
9    NSString *str7=[NSString stringWithString:str];
View Code

2.字符串的操作:

 1 //字符串的比较 1.用isEqualToString是字符串对象自带的方法返回值是布尔变量
 2         BOOL et=[str isEqualToString:str2];
 3         //2.用compare 返回值是NSComparisonResult 一个枚举类型{-1,0,1}
 4         NSComparisonResult ret=[str compare:str2];
 5         if(ret==NSOrderedAscending){
 6             NSLog(@"str<str2");
 7         }else if(ret==NSOrderedSame){
 8             NSLog(@"str=str2");
 9         }else if(ret==NSOrderedDescending){
10             MSLog(@"str>str2");
11         }
12         //声明一个字符串对象(用NSString类)
13         NSString *str=@"I am a so bad man.";
14         NSString *subStr=@"so";
15         //求子串(NSRange函数)返回值是NSRane结构类体型
16         //他里面有两长整数 location,length
17         NSRange range=[str rangeOfSting:subStr];
18         NSLog(@"location:%lu length:%lu",range.location,range.length);
19 
20         //提取字符串substringToIndex
21         NSString *str=@"0123456789";
22         //从str中从头提取6个字符串,生成新的字符串,返回字符串的地址
23         NSString *str=[str substringToIndex:6];
24         NSLog[@"%@",str];
25         NSLog[@"%@",str2];
26         //结果:0123456789
27         //012345
28         //从str中提取从第6个字符(包括第6个)到最后一个字符,生成新字符串,返回字符串地址
29         NSString *str3=[str substringFromIndex:6];
30         NSLog(@"%@",str3);
31         //结果:6789
32 
33         //根据指定位置提取字符串
34         NSRange range={3,4};//从第3个字符开始提取4个
35         NSString *str4=[str substingWithRange:range];
36         //上面两句可以用下面的代替
37         NSString *str4=[str substringWithRange:NSMakeRange(3,4)];
38         NSLog(@"%@",str4);
39         //结果:3456
View Code

3.深入学习:

 1 可变字符串:它继承字符串
 2 NSMutableString 在原来的基础上加了增删改查四个方法
 3 
 4 //创建
 5 NSMutableString *str=[[NSMutableString alloc] initWithString:@"hello"];
 6 //还可以这样做:
 7 NSMutableString *str=[[NSMutableString alloc] init];
 8 [str setString:@"hello"];
 9 //再次设置会替换原来的字符串
10 [str setString:@"world"];
11 //可变字符串的追加appendString
12 [str appendString:@"123"];
13 //追加格式符appendFormat
14 [str appengFormat:@"%c",'D'];
15 //插入 insertString
16 [str insertString:@"XXXX" atIndex:4];//在第4个位置上插入
17 [str insertString:[NSString stringWithFormat:@"%d",-54] atIndex:7];
18 
19 //结果:worlxxx-54xd123D
20 
21 
22 //删 从第3个字符开始删除5个字符
23 [str deleteCharactersInRange:NSMakeRange(3,5)];
24 
25 //结果:wor54xd123D
26 
27 //改 replace
28 [str replaceCharactersInRange:NSMakeRange(3,2) withString:@"Qrrrrrr"];
29 //结果:worQrrrrrrxd123D
View Code
原文地址:https://www.cnblogs.com/sdutmyj/p/4554967.html