objective-c系列-NSMutableString
**********************************************
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]);
**********************************************
**********************************************
objective-c系列-NSMutableString的更多相关文章
- Automake
Automake是用来根据Makefile.am生成Makefile.in的工具 标准Makefile目标 'make all' Build programs, libraries, document ...
- iOS开发核心语言Objective C —— 全部知识点总结
本分享是面向有意向从事iOS开发的伙伴及苹果产品的发烧友,亦或是已经从事了iOS的开发人员,想进一步提升者.假设您对iOS开发有极高的兴趣,能够与我一起探讨iOS开发.一起学习,共同进步.假设您是零基 ...
- iOS开发系列--网络开发
概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博.微信等,这些应用本身可能采用iOS开发,但是所有的数据支撑都是基于后台网络服务器的.如今,网络编程越来越普遍,孤立的应用通常是没有生命力 ...
- Objective C ARC 使用及原理
手把手教你ARC ,里面介绍了ARC的一些特性, 还有将非ARC工程转换成ARC工程的方法 ARC 苹果官方文档 下面用我自己的话介绍一下ARC,并将看文档过程中的疑问和答案写下来.下面有些是翻译,但 ...
- 刨根问底Objective-C Runtime
http://chun.tips/blog/2014/11/05/bao-gen-wen-di-objective%5Bnil%5Dc-runtime-(2)%5Bnil%5D-object-and- ...
- Objective-C( Foundation框架 一 字符串)
Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重 ...
- [转] NSString / NSMutableString 字符串处理,常用代码
原文 : http://justcoding.iteye.com/blog/1405951 Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString , ...
- 【转】 NSString / NSMutableString 字符串处理,常用代码 (实例)
Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重 ...
- NSString / NSMutableString 字符串处理,常用代码 (实例)
http://blog.csdn.net/likendsl/article/details/7417878 Objective-C 中核心处理字符串的类是 NSString 与 NSMutableSt ...
随机推荐
- 200、301、302、304、404等HTTP状态码
在网站建设的实际应用中,容易出现很多小小的失误,就像mysql当初优化不到位,影响整体网站的浏览效果一样,其实,网站的常规http状态码的表现也是一样,Google无法验证网站几种解决办法,提及到由于 ...
- ADO.NET基础03
数据库和VS的连接,实现数据的同步,让用户的一切信息都可以在数据库中留下记录. ADO.NET基础 它是连接所有数据库的一种特殊的技术,提供对不同的数据库统一操作接口. 在VS中也可以添加数 ...
- JAVA - Collections用法总结
一生二,二生三,三生万物,基础永远是一个计算机人的立身之本.数据结构这门课程的分析奠定了工程师对各种平台中的容器类,集合类的理解基础,正如好多人所说的,如果你对某个平台的集合类理解的不透彻,很可能,你 ...
- 原生JS查找元素
今天写了一个很简单.很粗暴的通过JS根据类来查找DOM元素. 为了降低它的粗暴等级(耗费性能)我给了三个等级. 首先性能最好的,适合FF,CH,IE8,通过querySelectorAll这个API. ...
- asp.net各种cookie代码和解析
Cookie是一段文本信息,在客户端存储 Cookie 是 ASP.NET 的会话状态将请求与会话关联的方法之一.Cookie 也可以直接用于在请求之间保持数据,但数据随后将存储在客户端并随每个请求一 ...
- 关于EF的 序列化类型为“XXX”的对象时检测到循环引用。
在用Ef的时候,也许经常会遇到循环引用的错误. 下面提供解决办法.(不是Json.Net,如果是Json.Net可以给导航属性通过增加特性标签来解决该问题) ef大多数问题,可以通过ToList()来 ...
- 关于 Servlet 和 Web
文中也只是对Servlet和Web作简单的了解,有个初步的认识,深入的内容有待于进一步去研究. T. T _ . _ Servlet Servlet(Server Applet),全称J ...
- web工程依赖的问题
http://blog.csdn.net/testcs_dn/article/details/43764497 做个记录
- RSA加密解密(python版)
RSA的算法涉及三个参数,n.e.d. 其中,n是两个大质数p.q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度. e1和d是一对相关的值,e可以任意取,但要求e与(p-1)*(q-1)互质: ...
- Java就业指导
想要成为合格的Java程序员或工程师到底需要具备哪些专业技能,面试者在面试之前到底需要准备哪些东西呢?本文陈列的这些内容既可以作为个人简历中的内容,也可以作为面试的时候跟面试官聊的东西,你可以把这些内 ...