NSString就是我们在工作中使用频率最高的类之一, 它创建的方式和我们学过的类相同, 也会创建出来一个字符串对象, 字符串分为两种:
一种是不可变字符, 一种是可变字符, 区别在于: 如果操作一个不可变字符的时候, 会产生一个新字符串,
如果操作一个可变字符串的时候, 不会产生一个新字符, 而是直接改变本身的内容, 可变字符串的父类是不可变字符串 .
创建字符串有三种方式, 一种是我们比较常用的创建方式NSString *str =@"hello;"这种方式叫字面量, 通过字面量可以快速创建一个字符串;
第二种方式就是NSString *str = [[NSString alloc]initWithString:@"hello"]; 使用这种方法也可以创建一个字符串, 但是会报一个异常, 因为现在已经不推荐使用这种alloc, initWithString来创建一个字符串对象.
还有一种就是用便利构造器来创建NSString *str = [NSStrin stringWithString:@"hello"]; 用它创建出现的警告和alloc一样, 系统还会是推荐使用第一种字面量的方式来创建.
系统的NSString类提供了大量的方法, 这些方法多, 而且功能强大, 唯独不好记住容易忘, 所以我们选择几个必须记住的方法, 其余的忘了的时候可以查到在哪里就可以了.
1.字符串的长度: 字符串本身的一个属性, 可以找到里面的长度str.length
2.获取一个子字符串: 就是对原来的字符串进行截取, 相似的截取方法有三个:
NSString *str1 = [str substringFromIndex:1];一定要用一个新的字符串来接收截取的结果,
还有两个: [str substringToIndex:1]; 和NSRange range = {1,2};
NSString *str1 = [str substringWithRange: range]具体的什么效果可自己尝试
3.拼接字符串, 这个以后用的非常多, 记住一个万能拼接法, 能把任意类型的字符变成字符串
NSString *newStr = [NSString stringWithFormat:@"hello%@", str];
4. 字符串比较内容是否相同(返回值类型回事什么?)
[str isEqualToString:newStr];
如果写成str == newStr是什么意思?
5. 判断是否有前缀后缀
[str hasPrefix:@"n"];
这个是判断有没有前缀, 如果是后缀的方法是什么?
6. 字符串比较
[str compare:str]
这个方法的返回值类型是一个枚举, 范围是-1, 0, 1, 什么时候是-1, 什么时候是0 和 1
还有很多方法比如大小写等等
NSString *string1 = @"A String";
NSString *string2 = @"String";
NSLog(@"string1:%@", [string1 uppercaseString]); // 大写
NSLog(@"string2:%@", [string2 lowercaseString]); // 小写
NSLog(@"string3:%@", [string3 capitalizedString]); // 首字母大写