1. NSString是1个数据类型,用来保存OC字符串的.
2. 实际上. NSString应该是1个类.
既然是1个类.所以,完整的创建NSString对象的方式应该是这样的
NSString *str0 = [NSString new];
NSString *str1 = [NSString string];
因为NSString是OC中最常用的1个对象.如果每次都这么创建字符串对象的话,就太累了.
所以,苹果就提供了1种快捷的方式来创建1个NSString对象.
@"jack" 这个本质上是1个NSString对象. 这是苹果提供的一种简写方式.
@"rose" 是1个NSString对象.这是1个创建NSString对象的简写方法.
NSString对象是来保存字符串的.
1). 要存储字符串的完整的方式.
a. 先创建NSString对象.
b. 把字符串存储到这个对象中.
2). 但是这么做太麻烦了. 所以,苹果提供了一个简写的方式,使用@符号.
@"jack" ; 创建1个NSString对象,然后把字符串"jack"存储到这个对象中去.
%p: 代表打印指针变量的值.只不过这个指针变量的值是1个地址.
%@: 代表打印指针指向的对象.
NSString *str = [NSString new];
这种方式创建的字符串是1个空字符串 @"" 不是nil
3. 既然NSString是1个类.那么就应该有很多很多的功能强大的方法.
1). 常用的类方法.
a. 将C语言的字符串转换为OC字符串对象.
+ (nullable instancetype)stringWithUTF8String:(const char *)nullTerminatedCString;
nullable: 代表返回的对象有可能是nil
b. 将变量拼接成1个新的OC字符串.
+ (instancetype)stringWithFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);
2). 常用的对象方法.
a. 得到字符串的长度.
- (NSUInteger)length;
NSUInteger 这货其实就是unsigned long
b. 得到指定下标的字符.
- (unichar)characterAtIndex:(NSUInteger)index;
在OC语言中 1个中文占据2个字节.
返回值是unichar 占据2个字节.
OC字符串中的字符 如果是英文字符占据1个字节 .如果是中文字符就占据2个字节.
打印unichar字符使用%C 这是大C
c. 判断两个字符串的内容是否相同.
如果要判断两个字符串的内容是否相同.不要使用==来判断.会出问题.
- (NSComparisonResult)compare:(NSString *)string;
返回的是1个枚举值.
NSOrderedAscending : 当前字符串比传入的字符串小.
NSOrderedSame: 一样
NSOrderedDescending 当前字符串比传入的字符串大
如果枚举记不住,用整型就可以了.
d. 只判断两个字符串是否相同.;
- (BOOL)isEqualToString:(NSString *)aString;
|
|