21-字符串NSString

1. NSString是1个数据类型.用来保存OC字符串的.

2. 其实NSString是Foundation框架中的1个类.
作用: 存储OC字符串的
所以.OC中的字符串本质上是用NSString对象来存储的.

3. 其实完整的标准的创建NSString对象的方式
NSString *str0 = [NSString new];
NSString *str1 = [NSString string];
这种方式创建的字符串是空字符串 @""
但是.NSString是我们最常用的1个对象 所以OC使用了1种更为简单的方式来创建字符串对象.
直接使用@来表示1个OC字符串.
@"jack" 这个其实本质上是1个NSString对象.
NSString *str = @"jack";
@"jack" 是1个NSString对象 str的值是这个对象的地址.
%p 打印的是指针变量的值
%@ 打印的是指针变量指向的对象.
4. NSString最常用的类方法.
1). + (instancetype)stringWithUTF8String:(const char *)nullTerminatedCString;
instanceType 作为返回值 代表返回的是当前这个类的对象.
作用:将C语言的字符串转换为OC字符串对象.
2). + (instancetype)stringWithFormat:(NSString *)format, ... 使用频率100分.
作用: 拼接1个字符串对象.使用变量或者其他数据拼接成OC字符串.
int age = 19;
NSString *name = @"小明";

//@"大家好我叫xx 我的年龄是xx"
NSString *str = [NSString stringWithFormat:@"大家好,我叫%@,我今年%d岁",name,age];
NSLog(@"str = %@",str);
5. 最常用的对象方法
1). length方法 返回值为NSUInteger 其实就是unsigned long
得到字符串的字符的个数 可以处理中文.
2). 得到字符串中指定下标的字符.
- (unichar)characterAtIndex:(NSUInteger)index;
返回值是unichar 其实就是unsinged short 占据2个字节.
如果要输出unichar变量的值使用%C 钛金眼睁大 这是大写的C
%c
3). 判断两个字符串的内容是否相同.
a. 判断两个字符串的内容是否相同 不要用==去判断 因为这样有可能会出问题.
b. 判断相等的方式.
- (BOOL)isEqualToString:(NSString *)aString;
所以,判断两个字符串是否相等 应该使用这个方法区判断 才会得到正确的结果.
4).比较字符串的大小.
- (NSComparisonResult)compare:(NSString *)string;
完全可以使用int类接收结果. 因为返回值是1个枚举.
返回值如果是 -1 说明小于
0 等于
1 大于.

6、字符串是否包含

  hasPrefix 判断字符串是否以某个字符串开头

  hasSuffix 判断字符串是否以某个字符串结尾


7、 截取字符串

substringToIndex: 截取从索引0到特定位置处的字符串

  substringFromIndex: 截取从特定位置到字符串末尾的字符串

  substringWithRange:从特定位置开始截取特定长度的字符

8、字符串大小写转化

  uppercaseString将字符串转化为大写

  lowercaseString将字符串转化为小写

  capitalizedString将字符串首字母转化为大写

9、查找字符串

  查找字符串可以使用rangeOfString方法,该方法返回NSRange 可以获得匹配的字符串的起始位置
以及长度

10、替换字符串

  可以使用stringByReplacingCharactersInRange方法替换特定位置的字符串

  可以使用stringByReplacingOccurrencesOfString将特定字符串替换为指定字符串

11、如果对象是一个地址
NSString *imageUrl = @"http://www.baidu.com/1.jpg";
NSString *path = [imageUrl lastPathComponent];

12、字符串转换为其他类型
@property (readonly) double doubleValue;
@property (readonly) float floatValue;
@property (readonly) int intValue;
@property (readonly) NSInteger integerValue
@property (readonly) long long longLongValue
@property (readonly) BOOL boolValue



猜你喜欢

转载自blog.csdn.net/daidaishuiping/article/details/80230194