NSString和NSMutableString

  • NSString:不可变字符串类(父类)
  • NSMutableString:可变字符串类(子类)
  • NSMutableString类继承了NSString类
  • 不可变:指的是字符串在内存中占用的空间是固定的,并且存储的内容是不能发生变化的
  • 可变:指的是字符串在内存中占用的空间是不固定的,并且存储的内容可以被修改

NSString

一、创建字符串的常见方式:

// 创建字符串
NSString *str = @"jack";// 格式化创建字符串
NSString *str2 = [NSString stringWithFormat:@"jack今年%d岁", 18];
NSString *str3 = [[NSString alloc] initWithFormat:@"jack今年%d岁", 18];// 根据一个字符串创建字符串
NSString *str4 = [NSString stringWithString:str];
NSString *str5 = [[NSString alloc] initWithString:str];

二、字符串的读写:
1> 字符串的读写方式一:

- 上述方法中的几个参数问题:
1. encoding: NSUTF8StringEncoding
(这里填写编码方式,一般使用NSUTF8StringEncoding这种编码方式)
2. stringWithContentsOfFile: filePath (这里填写路径,filePath为绝对路径,是一个文件路径)writeToFile: filePath (这里填写路径,filePath为绝对路径,是一个文件路径)
3. error: nil (这里填写的是一个二级指针,用来保存返回的信息,一般填写nil)
4. atomically: YES (YES:中途创建失败,文件不会创建;NO:中途创建失败,文件仍然会创建)

2> 字符串的读写方式二:
URL:资源路径
URL的格式: 协议头//路径
file:// 本地
http:// 互联网传输协议
https:// 加密的互联网数据传输
ftp:// 点对点的文件传输

- 上述方法的几个注意事项:
1. NSURL *url = [NSURL URLWithString:@”file:///Users/otman/Desktop/str.text”];
file:// 代表本地路径,第三个/是根路径
通过这种方法创建的url,如果路径中有中文则无法正常使用
2. NSURL *url2 = [NSURL fileURLWithPath:@”/Users/otman/Desktop/str.text”];
如果是本地资源路径,可以使用 fileURLWithPath: 文件路径 来创建url

三、NSString的常用方法:
1> 字符串前后缀的检测
(1)字符串的前缀检测

(2)字符串的后缀检测

2> 字符串的截取和替换
(1)字符串的截取
- (NSString *)substringFromIndex:(NSUInteger)from;
截取从指定位置from开始(包括指定位置的字符)到尾部
- (NSString *)substringToIndex:(NSUInteger)to;
从字符串开头一直截取到指定位置to(不包括该位置的字符)
- (NSString *)substringWithRange:(NSRange)range;
截取字符串中某个范围的字符串

(2)字符串的替换

3> 字符串的比较
(1)compare方法区分大小写

- 上述方法的注意事项:
1. NSComparisonResult是个枚举类型
<1>NSOrderedAscending 升序 str < str2
<2>NSOrderedSame 相同 str == str2
<3>NSOrderedDescending 降序 str > str2
(2)可以使用compare:options:方法来增加条件,忽略大小写来比较

- 上述方法的注意事项:
1. options:条件,条件类型是NSStringCompareOptions枚举类型
2. 几个常用的NSStringCompareOptions枚举值:
<1> NSCaseInsensitiveSearch 不区分大小写字符
<2> NSLiteralSearch 进行完全比较,区分大小写(默认)
<3> NSAnchoredSearch 比较字符串中得字符个数,而不是字符的ASCII码值

4> 字符串的搜索

- 上述方法使用注意事项:
1. NSRange是一个结构体,里面包含location和length两个元素

5> OC字符串和C字符串的转换
(1)C字符串转换成OC字符串

(2)OC字符串转换成C字符串

6> 字符串的遍历

- 上述方法使用注意:
- - (unichar)characterAtIndex:(NSUInteger)index; 返回index位置的字符
- characterAtIndex:方法的返回值是unichar类型

7> 字符串和基本数据类型的转换

8> 去掉字符串中首尾的空格

9> 去掉字符串中首位的指定字符串

NSMutableString

  • NSMutableString为NSString的子类,所以NSString拥有的方法,NSMutableString也都拥有

一、NSMutableString的常见用法:
1> 增

2> 删

3> 改
(1)在可变字符串中插入字符串

(2)将可变字符串中某个范围的字符串用其他字符串替换

字符串的使用注意:

  1. @”hello”这种方式创建的字符串始终是NSString,不是NSMutableString
  2. NSMutableString的string属性,会将源对象的所有字符串都覆盖掉(通过.string属性可以修改字符串内容)
  3. 开发中绝大多数用到的是NSString,只是如果需要做特殊处理的时候(截取、拼接、替换等)操作,才会考虑使用NSMutableString

—— 如果您有不同的见解,请随时指出,期待与您的交流!——


OutMan——Foundation框架中的NSString类和NSMutableString类相关推荐

  1. Foundation框架中常用类的介绍

    http://blog.csdn.net/mengtnt/article/details/6087536 Foundation框架的架构 cocoa程序编写主要用到2个框架Foundation和App ...

  2. (转载)OC学习篇之---Foundation框架中的NSDirctionary类以及NSMutableDirctionary类

    昨天学习了Foundation框架中NSArray类和NSMutableArray类,今天来看一下Foundation框架中的NSDirctionary类,NSMutableDirctionary类, ...

  3. Struts2框架中的Action接口和ActionSupport类

    Struts2框架中的Action接口和ActionSupport类 1.Action接口 2.ActionSupport类 3.登录案例 3.1.页面 3.2.控制器 3.3.struts.xml配 ...

  4. oc基础-foundation框架中的常用结构体

    1.CGPoint/NSPoint :表示坐标点的 创建: CGPoint *cp=NSMakePoint(10,10); //x,y NSPonit *cp=CGPointMake(10,10); ...

  5. Foundation框架中的数字类型:NSNmuber(二)

    看官们,我们在上一章回中对NSNumber类型做了详细的分析,本章回中我们将给出完整的代码,请大家参考: #import<Foundation/Foundation.h>int main( ...

  6. java sublist_Java集合框架中少为人知的SubList类

    SubList List在开发中是常用的一种数据结构,偶尔也会用到List中的subList方法,这个方法有点意思,一起看下. 01SubList的使用 List接口中有subList(int fro ...

  7. 《Objective-c》Foundation框架 -(字符串:NSString和NSMutableString)

    一.NSString(不可变字符串) 1.创建字符串的方式:(利用对象方法) 方式一:最快速的创建 方式二: 方式三: 方式四: 方式五:NSUTF8StringEncoding 用到中文就可以用这种 ...

  8. IOS基础之Foundation框架常用类NSFileManager,DSDate,CGPoint,CGSize,copy,单例

    IOS基础之Foundation框架常用类NSFileManager,DSDate,CGPoint,CGSize,copy,单例 1.01_FileManager学习 // // main.m // ...

  9. 黑马程序员--Foundation框架之--NSArray类以及它的子类NSMutableArray类

    ------IOS培训期待与您交流! ------- 今天我们继续来看一下Foundation框架中的NSArray类和 NSMutableArray类,NSArray类 是不可变的,NSMutabl ...

  10. 黑马程序员--Foundation框架之--NSObject类

    ------IOS培训期待与您交流! ------- OC中的Foundation框架是系统提供的,他就相当于是系统的一套api,其内部有很多现有的类和功能提供给我们使用. 那么今天首先来介绍一下Fo ...

最新文章

  1. 一文读懂深响年度大会,增长密码藏在这些关键词里
  2. Hadoop HBase概念学习系列之HRegion服务器(三)
  3. “稳定”凸包----poj1228
  4. AI自动标注神器!支持多通道、大尺幅数据
  5. java替换html特殊字符,HTML特殊字符替换问题 html escape相关
  6. iOS之仿QQ好友列表展开收缩效果的实现
  7. 可观测性PHP秩判据,线性系统的可控性与可观测性
  8. java ftp读取文件内容_java读取ftp中TXT文件的案例
  9. matlab在命令行和脚本,MATLAB学习笔记—函数与脚本
  10. 程序员写文档工具推荐,让你爱上写文档!
  11. Powershell的字符串
  12. Linux代理服务器 Centos Nginx安装、反向代理配置、Nginx开机自启动及日志每天自动分割压缩
  13. torch.randn 方法
  14. cmd命令导入.dmp文件
  15. AWS SES发QQ邮箱拒收解决方案
  16. 那些年遇到的奇葩老板
  17. 在线教育源码开源版,这样下载部署即可运行
  18. 我国52人入选《福布斯》2009年富豪榜
  19. 指令集CEO潘爱民受邀参加2021技术英雄会
  20. 关于 Cloudflare Warp 的一些细节以及是否暴露访客真实 IP 的测试

热门文章

  1. 学习笔记4--自动驾驶汽车感知系统
  2. 近600个教学学习资料链接(zz)
  3. 带通滤波器参数详细推导
  4. 数据库的部分依赖,完全依赖,传递依赖以及三种范式
  5. 闭环系统的零极点图判定稳定性_零极点与系统稳定关系 拉氏变换的收敛域...
  6. 自定义UI控件:弹出键盘添加“完了”按钮
  7. SQL Server 开窗函数Over的使用(计算结存金额)
  8. 春运抢火车票攻略汇总(持续更新中)
  9. Win10,Win11家庭版开启远程桌面接入功能-有详细操作截屏
  10. vue背景图片资源加载问题