OC中的字符串

本文介绍了Objective-C中的字符串,主要探讨了不可变字符串(NSString)和可变字符串(NSMutableString)。不可变字符串初始化方式包括使用@""、stringWithString:、stringWithFormat:、从C字符串、文件、URL和NSData转换。可变字符串继承自NSString,除了不可变字符串的所有初始化方法,还有特定的初始化方法。此外,文章还提到了字符串的一些常用操作,如获取长度、比较、判断前缀和后缀、大小写转换以及字符串切割等。
摘要由CSDN通过智能技术生成

在OC中,字符串的关键字是NSString,定义在Foundation框架中,是字符的链表,是一个对象;字符串对象有unicode字符的数组组成,一般来说,字符串一般分为两种:不可变字符串和可变字符串。

不可变字符串

顾名思义,不可变字符串就是不可以变的字符串,也就是定义了之后就不能改变它了(如:大小,内容)。

不可变字符串的初始化

  • 用@”“符号来声明一个不可变字符串,如:
NSString *str = @"这是一个字符串";
  • 用NSString的stringWithString:方法来声明一个字符串,这个方法其实和上面的一样,不如直接用上面的那个方法,如:
NSString *str = [NSString stringWithString:@"这是一个字符串"];
  • 用NSString的stringWithFormat:方法来拼接成一个字符串,如:
NSString *str = [NSString stringWithFormat:@"下个月是%i月",5];
  • 用C字符串转换的方式来生成一个字符串,如:
NSString *str = [NSString stringWithUTF8String:"这是一个C字符串转OC字符串"];
  • 从文件中读取,如:
NSString *str = [NSString stringWithContentsOfFile:@"/Users/froda/Desktop/test.txt" encoding:NSUTF8StringEncoding error:nil];
  • 从URL读取,如:
NSString *str = [NSString stringWithContentsOfURL:@"www.baidu.com" encoding:NSUTF8StringEncoding error:nil];
  • 从NSData中读取,如:
NSString *str = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];//response是一个NSData类型

可变字符串

可变字符串用关键字NSMutableString表示,是NSString的子类,从字面上就可以知道可变字符串可以被修改。

可变字符串的初始化

  • 可变字符串是NSString的子类,也就是说不可变字符串的初始化方法都能用于可变字符串,一般可变字符串初始化用下面这2种方法:
NSMutableString *mtStr = [NSMutableString alloc]init];//只是分配了一块内存给一个变量名为mtStr的变量
NSMutableString *mtStr = @""//一个空的可变字符串

字符串的一些常用方法

NSString *str = @"I am froda !"; 
NSString *aStr = @"I am xiaofei .";
  • 获取长度
unsigned long len = [str length];//字符串的length方法会返回一个unsigned long的长度
  • 判断两个字符串是否相等
BOOL isEq = [str isEqualToString:@"I am xiaofei"];//该方法是判断两个字符串是否相等
  • 判断是否有某某前缀或者后缀
BOOL hasPrefix = [str hasPrefix:@"I"];//是否以字符串“I”开头
BOOL hasSuffix = [str hasSuffix:@"fei"];//是否以字符串“I”结尾
  • 转换字符串的大小写
NSString *aString = [str uppercaseString];//会将字符串str所有小写的字符转换为大写的形式
NSString *aaString = [aString lowercaseString];//会将字符串aString所有的大写字符转换为小写的形式
NSString *aString = [str capitalizedString];//首字母大写,其它字符不管是大写还是小写都会以小写的形式呈现
  • 以一定的字符把字符串切割,如:
NSString *oneStr = @"北京,上海,广东,贵阳";
NSArray *array = [oneStr componentsSeparatedByString:@","];
NSLog(@"%@",array);//结果:(北京,上海,广东,贵阳)

总结

字符串在我们的开发中使用的频率非常高,当我们想对字符串有什么操作的时候,先查查文档,有的方法就不用自己写了。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值