NSString
NSString类型的指针变量 存储OC字符串的地址 不能存储c语言的
%@打印的是指针变量指向的对象 约等于 chara;的a
%p打印的是指针的存储的值 约等于char*a; 的a
%c是读取一个字节的数据
%C是读取两个字节的数据 unichar
NSString *b = [[NSString alloc]init];//证明NSString是一个类
NSString *c = [NSString string];//这种就是类方法创建
//上面这两种方法创建的是空串@""
NSString *a = @"hello";//有@表示是OC的字符串 @"hello"这种本质是一个NSString对象
NSLog(@"%@",a);//hello 这样写不行NSLog(@"%s",*a);
NSLog(@"%p",a);//一串地址 a实际上存储的是@"hello"对象的地址
instancetype
instancetype作为返回值时表示返回的是当前这个类的对象
例如
-(instancetype)init{return self};//就不需要id了 因为return的self就是当前这个类的对象
stringWithUTF-8String C字符串转化为OC字符串
+(instancetype)stringWithUTF-8String:(const char*)nullTerminatedCString;
将C语言字符串转化为OC字符串对象
char *str0 = "rose" ;
NSString *str1=[NSString stringwithUTF8String:str0];
stringwithFormat 拼接字符串
+(instancetype) stringwithFormat :(NSString *)format
拼接一个字符串 使用变量或者其他数据拼接成OC字符串
NSString *str = [NSString stringwithFormat:@"大家好,我叫%@,我今年%d岁" , name ,age];
[str length]测量支持长度
返回的是由多少个字符 并不是字节
`NSUInteger len = [str length]`;//NSUInteger 其实就是unsigned long
[str characterAtIndex:2]获取字符串的第几个字符
unichar ch = [str characterAtIndex:2]
[str1 isEqualToString:str2]判断两个字符是否一样
直接用==容易出问题
[str1 compare:str2]比较两个字符大小
NSComparisonResult res = [str1 compare:str2];//NSComparisonResult 枚举类型 1(小于) 0(相等) -1(大于)也可以用int接