- 字符串声明,以下三种方法:
NSString
NSString
NSString
NSString
区别1:方法一用Format进行字符串的声明,方法二用String方法声明,第三种方法和用String声明基本一致,但是不初始化内存空间,方法一和方法二中,a0和a1使用结束后,需要进行内存释放,但是a2不需要进行内存释放。
区别2:用Format初始化的字符串,需要初始化一段动态内存空间,如:0x6a42a40,而用String声明的字符串,初始化的是常量内存区,如:0x46a8,常量内存区的地址,只要值相同,占用的地址空间是一致的。所以a1和a2的地址一致,但是a0和a3的地址不一致。
- 将其它类型转化成字符串:
可以使用Format,以整型为例,如:
int i = 100;
NSString
NSLog(@"b =%@",[b description]);
结果输出:b =100
- 求字符串长度:
用length求字符串长度,如:
NSLog(@"a1 =%d",a1.length);
结果输出a1 = 5
注意这里和C语言的不同,C语言中,字符串的结束是以'\0'结束,而OC不是。
- 拼接、求子字符串:
拼接,使用stringByAppendingString,如:
NSString
NSString *c =[a0
NSLog(@"c = %@",c);
结果输出:c = kevin2012
求子字符串,有三种方式:
1、substringFromIndex:x
2、substringToIndex:x
3、substringWithRange
如下:
NSString *d =[a1
NSString *e =[a1
NSLog(@"d = %@,e =%@",d,e);
结果输出为:d = evin,e = kev
substringWithRange先定义区间,如下:
NSRange r = {2,3};
NSString *f = [csubstringWithRange:r];
NSLog(@"f = %@",f);
结果输出为:f = vin
- 字符串转化成其它类型:
int j =[a4
NSLog(@"j = %d",j);
还可以转化为float,BOOL型,查文档得知,如果转化为BOOL型,Returns YES on encountering one of "Y", "y","T", "t", or a digit 1-9—the method ignores any trailingcharacters. Returns NO if the receiver doesn’t begin with a validdecimal text representation of anumber.(由Y,y,T,t,1-9开始的字符串转化为YES,其余的为NO)
- 比较字符串是否相等:
a0 isEqual:(id)
a0 isEqualToString:b
如下:
BOOL c1 = [@"12"isEqual:@"12"];
BOOL c2 = [@"12"isEqualToString:@"12"];
BOOL c3 = [a0isEqualToString:a1];
NSLog(@"c1 = %d,c2 = %d,c3 =%d",c1,c2,c3);
结果输出为:c1 = 1,c2 = 1,c3 = 0;
- 比较字符串大小:
使用compare:升序返回-1,相等返回0,降序返回1
如下:
NSString *k1 = @"ABC";
NSString *k2 = @"ABc";
NSComparisonResult r1 = [k1compare:k2];
NSLog(@"r1 = %d",r1);
结果输出为r1 = -1
转化字符串大小写:
lowercaseString:
uppercaseString:
如下:
NSString *k3 = [k1lowercaseString];
NSString *k4 = [d1uppercaseString];
NSLog(@"k3 = %@,k4 =%@",k3,k4);
结果输出为:k3 = abc,k4 =ABC