**********************************************

NSMutableString为NSString的子类,除了父类的方法,NSMutableStirng还有一些增删改和替换的方法

**********************************************

构造方法

新增的一个构造方法:

NSMutableString *mstring = [[ NSMutableString alloc]initWithCapacity:100];

//注意事项:

// 定义一个指针

NSMutableString *mstr;

//        mstr=@"abc";  //mstr指向了常量,所以是不可变

mstr = [[NSString alloc] init];// 这样子是开辟的不可变字符串空间,也是不可变字符串

mstr = [[NSMutableStirng alloc] init];// 这样子就可变了

同理:

NSString str = [[NSMutableString alloc] init];// str也是可变字符串哦!

**********************************************

// 增

NSMutableString *mstr = [[NSMutableString alloc]init];

//往字符串mstr尾部追加一个格式串

[mstr appendFormat:@"[a=%i]-[c=%c]-[s=%s]",123,'x',"cstring" ];

NSLog(@"mstr: %@",mstr);

NSLog(@"mstr的长度为: %lu", [mstr length]);

//往字符串mstr尾部追加一个oc字符串,  对应c中的strcat

[mstr appendString:@"-[appendString]"];

NSLog(@"mstr: %@",mstr);

NSLog(@"mstr的长度为: %lu", [mstr length]);

**********************************************

// 删

NSMutableString *mstr = [[ NSMutableString alloc]initWithString:@"123abc123abc"];

NSLog(@"before delete, mstr: %@, mstr的长度为:%lu", mstr,[mstr length]);

//指定范围删除

[mstr deleteCharactersInRange:NSMakeRange(9, 3)];

NSLog(@"after delete,  mstr: %@, mstr的长度为:%lu", mstr,[mstr length]);

//先查找得到范围,再根据这个范围去删除

//  mstr的内容为:  123abc123

//  在mstr中找abc的范围,应该返回一个结构体 {3,3}

//  再将这个结构体传入 deleteCharactersInRange:方法,完成对abc的删除

[mstr deleteCharactersInRange:[mstr rangeOfString:@"abc"]];

NSLog(@"第二次删除abc之后,  mstr: %@, mstr的长度为:%lu", mstr,[mstr length]);

//问题1:如何删除在字符串中多次出现的子串?

 // 问题2:如何替换在字符串中多次出现的子串?

//      1,循环处理

[mstr appendString:@"abc123abc123abc123"];

NSLog(@"追加一个abc123...之后,  mstr: %@, mstr的长度为:%lu", mstr,[mstr length]);

//  mstr中有三个abc子串

printf("NSNotFound=%lu\n",NSNotFound);

while (1) {

NSRange range=[mstr rangeOfString:@"abc"];

if (range.location==NSNotFound) {

break;

}

[mstr deleteCharactersInRange:range];

//    [mstr replaceCharactersInRange:[mstr rangeOfString:@"123"] withString:@"woca"];

}

NSLog(@"在循环中删除abc之后,  mstr: %@, mstr的长度为:%lu", mstr,[mstr length]);

//用一个新字符串替换原来字符串中的某个范围内的字符

[mstr replaceCharactersInRange:NSMakeRange(2, 1) withString:@"[replace]"];

NSLog(@"在替换方法调用之后,  mstr: %@, mstr的长度为:%lu", mstr,[mstr length]);

//在某个下标处插入一个字符串

[mstr insertString:@"[insertString]" atIndex:1];

NSLog(@"在插入方法调用之后,  mstr: %@, mstr的长度为:%lu", mstr,[mstr length]);

//设置字符串

[mstr setString:@"[this is setString]"];

NSLog(@"在setString方法调用之后,  mstr: %@, mstr的长度为:%lu", mstr,[mstr length]);

**********************************************

**********************************************

最新文章

  1. ORA-27101: shared memory realm does not exist
  2. 4、CC2541芯片中级教程-OSAL操作系统(简单AT指令实现+IIC软件和硬件实现驱动MPU6050)
  3. C# web 获取服务端cookie
  4. Day_6作业_模拟人生
  5. J2ee 巴巴网站制作(一)
  6. 读书笔记之 - javascript 设计模式 - 责任链模式
  7. notification.setLatestEventInfo(context, title, message, pendingIntent); undefined
  8. 自定义函数标签(JSTL)
  9. HDOJ 4883 TIANKENG’s restaurant
  10. java基础练习 5
  11. Vulkan Tutorial 20 Vertex buffer creation
  12. python 命令行参数——argparse模块的使用
  13. 如何在cisco官网上下载Cisco packet tracer模拟器
  14. 电脑小白和ta的小白电脑——Tomcat服务器
  15. webapi xml序列化删除<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">标签
  16. Android 永久保存简单数据
  17. sitecore系统教程之限制对客户端的访问
  18. HDOJ 4276 The Ghost Blows Light(树形DP)
  19. 类似jq的即点即改
  20. 初识 HTML5(一)

热门文章

  1. nginx+uwsgi+django+celery+supervisord环境部署
  2. 基于MDK-ARM创建STM32L-DISCOVERY Project
  3. 存储过程返回布尔值以及C#相关处理
  4. ASP.NET MVC程序中动态修改form的Action值
  5. ios开发入门资料整理
  6. 疯狂Android讲义 - 学习笔记(二)
  7. 记一次ckeditor上传图片到服务器问题
  8. java一点小的知识点
  9. 简单在android adb root方法
  10. 根据商品名称、价格区间检索商品的SQL语句