NSString定义出来的对象是不可变的字符串。当我们拿到一个NSString对象,不要将它当作数组使用,要当成一个类来使用。
NSString初始化
1、
//NSString(不可变字符串) //我们拿到一个NSString对象,不要当字符数组使用,要当成一个类来使用。。 //初始化1 NSString *s1 = @"123"; |
2、
//初始化2,返回一个空的字符串 //一般不用这样的方式,因为返回的是不可改变的空值 NSString *s2 = [[NSString alloc] init]; NSLog(@"s2 = %@",s2); |
便利构造器:
NSString *s3 = [NSString string]; NSLog(@"s3 = %@",s3); |
3、
//创建格式化字符串 NSString *s4 = [[NSString alloc]initWithFormat:@"%@456",s1]; NSLog(@"%@",s4); //2015-04-1611:03:20.848 OCLesson4_NSString[1010:49410] 123456 |
便利构造器:
//便利构造器 NSString *s5 = [NSString stringWithFormat:@"%@789",s4]; NSLog(@"%@",s5); //2015-04-1611:09:01.253OCLesson4_NSString[1037:51375] 123456789 |
4、
//使用字符串初始化字符串 NSString *s6 = [[NSString alloc]initWithString:s5]; |
便利构造器:
NSString *s7 = [NSString stringWithString:s6]; NSLog(@"%@",s7); |
5、写一个txt文档,然后拖到工程里,再将这个工程里的文档拖到initWithContentsOfFile:@" "这个” ”参数里,就会自动识别txt的地址。
//用文件给字符串赋值 NSString *s8 = [[NSString alloc]initWithContentsOfFile:@"/Users/lanou3g/Desktop/OC课上代码/OCLesson4_NSString/OCLesson4_NSString/test.txt" encoding:NSUTF8StringEncoding error:nil]; NSLog(@"%@",s8);//2015-04-16 11:28:06.604 OCLesson4_NSString[1134:58246] haha我们拿到一个NSString对象,不要当字符数组使用,要当成一个类来使用。。 |
便利构造器:
NSString *s9 = [NSString stringWithContentsOfFile:@"/Users/lanou3g/Desktop/OC课上代码/OCLesson4_NSString/OCLesson4_NSString/test.txt" encoding:NSUTF8StringEncoding error:nil]; NSLog(@"%@",s9); |
NSString的使用:
1、
//使用 //length 用来获取字符串长度 NSString *testStr = [NSString stringWithFormat:@"123ABCabc456"]; NSLog(@"%lu",[testStr length]);//2015-04-16 11:37:58.968 OCLesson4_NSString[1197:60748] 6 |
2、
//比较字符串大小 //NSComparisonResult是一个枚举类型, // -1 :前面的 < 后面的 // 0 :前面的 = 后面的 // 1 :前面的 > 后面的 [testStr compare:@"123456"]; |
3、
//比较两个字符串是否相等 [testStr isEqualToString:@"123"]; |
4、
//判断前缀 // 包含:返回YES // 不包含:返回NO BOOL b1 = [testStr hasPrefix:@"1"]; NSLog(@"%d",b1);//2015-04-16 11:49:27.805 OCLesson4_NSString[1253:64616] 1
BOOL b2 = [testStr hasPrefix:@"13"]; NSLog(@"%d",b2);//2015-04-16 11:49:27.805 OCLesson4_NSString[1253:64616] 0 |
5、
//判断后缀 // 包含:返回YES // 不包含:返回NO bool b3 = [testStr hasSuffix:@"23456"]; NSLog(@"%d",b3);//2015-04-16 11:55:14.706 OCLesson4_NSString[1292:66018] 1
bool b4 = [testStr hasSuffix:@"65"]; NSLog(@"%d",b4);//2015-04-16 11:55:14.706 OCLesson4_NSString[1292:66018] 0 |
6、
//是否包含 //8.0以后,10.10以后才有效。 bool b5 = [testStr containsString:@"123"]; |
7、
//大小写转换 //小写转换 NSString *temp1 = [testStr lowercaseString];(以小写字母印刷) NSLog(@"%@",temp1);//2015-04-16 14:46:10.449 OCLesson4_NSString[1641:83987] 123abcabc456 |
8、
//转换大写 NSString *temp2 = [testStr uppercaseString];(以大写字母印刷) NSLog(@"%@",temp2);//2015-04-16 14:47:18.609 OCLesson4_NSString[1653:84450] 123ABCABC456 |
9、
//截取字符串 //从哪开始截取字符串,并且包含该位置。 NSString *temp3 = [testStr substringFromIndex:2]; NSLog(@"%@",temp3);//2015-04-16 14:51:14.002 OCLesson4_NSString[1672:85555] 3ABCabc456 |
10、
//从头开始到指定位置结束截取,不包含该位置。 NSString *temp4 = [testStr substringToIndex:7]; NSLog(@"%@",temp4);//2015-04-16 14:53:47.745 OCLesson4_NSString[1686:86307] 123ABCa |
11、
//截取指定位置指定长度的字符串 //substringWithRange的参数是一个结构体,结构体中,成员变量:整型的location(位置)和整型的length(长度) NSString *temp5 = [testStr substringWithRange:NSMakeRange(3, 3)];//NSMakeRange(3, 3),是oc提供的函数(参数是整型的location,整型的length),用来截取第3个位置开始后长度为3的字符串 NSLog(@"%@",temp5);//2015-04-16 14:57:17.828 OCLesson4_NSString[1707:87601] ABC |
12、
//字符串转换成数字。 NSString *s10 = @"123"; int num1 = [s10 intValue];//只有在字符串里边全部都是数字的时候,才能转换。 NSLog(@"%d",num1);//2015-04-16 15:00:42.354 OCLesson4_NSString[1728:88795] 123 |