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];
对应的创建临时字符串的方法:
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];
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
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