温故而知新,now复习一下Foundation中的字符串对象
来源:互联网 发布:淘宝店能贷款吗 编辑:程序博客网 时间:2024/06/04 01:07
ios开发的时候,Foundation中的字符串对象是再常用不过的了,与此同时,NSDictionary对象也是很常用的,here,先复习String Objects
String Objects有两个版本,一个是不可变的NSString,另一个是NSMutableString
对于NSSting,来几个操作:
// 声明几个string对象NSString *str1=@"i'll be back";NSString *str2=@"just do it";NSString *result;
//计算字符串包含的charcter, -(NSUInteger)length;NSSLog(@"the characters included in string str1 are:%lu, [str1 length]);
<pre name="code" class="objc">// 构建String Object,注意,这种构建是一个深拷贝result = [NSString stringWithString:str1];// 如果要进行浅拷贝则这么写result = str1;
字符串的比较中使用的是Foundation定义的NSComparisionResult,以及-(NSComparisionResult)compare:(NSString*)string方法,延续上面的工作,
</pre><pre name="code" class="objc">NSComparisonResult compareResult = [str1 compare: str2];if (compareResult == NSOrderedAscending) {NSLog(@"str1 < str2");} else if (compareResult == NSOrderedSame) {NSLog(@"str1 == str2");} else if (compareResult == NSOrderedDescending) {NSLog(@"str1 > str2");}
of course, 如果仅仅是比较两个String是不是相等,也可以用Foundation提供的-(bool)isEqualToString:(NSString*)string方法
if (YES == [str1 isEqualToString:str2]) { NSLog(@"str1=str2");} else { NSLog(@"str1 != str2");}
再来一个字符串追加, 也就是所谓的字符串对象的join操作:
//将str2加到str1之后NSString *str3 = [str1 stringByAppendingString:str2];
字符串对象中的字符大小写转化
// 全部字符转化成大写str1 = [str1 uppercaseString];// 全部字符转化成小写str2 = [str2 lowercaseString];
关于子串的操作。Foundation对于NSString中提供了对于子串的操作,如-(NSString*)substringToIndex:(NSUInteger)k; 这个方法获得从第0个字符到第k-1个字符的子串。也就是前k个字符构成的子串。和这个方法类似的有-(NSString*)substringFromIndex:(NSUInteger)jjj;则是获得从第jjj个字符到最后一个字符之间的子串。
sub1 = [str1 substringToIndex:2];sub2 = [str2 substringFromIndex:5];sub3 = [str1 substringFromIndex:8] substringToIndex:6]];
对于str1 substringFromIndex:8] substringToIndex:6]实际上拿到的是str1第8个字符开始之后的6个字符组成的子串。对于这个需求也可以这么实现,封装性更好一点,它借助的是NSRange这个结构体:
NSRange range = NSMakeRange(8,6);sub33 = [str1 substringWithRange:range];以上是获取一个子串的操作。除了获取子串,我们对于字符串的需求还包括查找一个字符串中是否存在某个子串的操作。例如,在“hello,new stage“中,我们想看看有没有new这个字符串,可以这么来实现:
NSString *pattern = @”new";NSString *source = @"hello, new stage";NSSRange ra = [source rangeOfString:pattern];if (ra == NSNotFound) { NSSLog(@"pattern is not a substring of source");} else { NSSLog(@"pattern in source is index:%lu", ra.location);}NSRange是Foundation中提供的结构体,这个在c++中也是有类似的结构用来封装一个范围。NSNotFound类是-1或者什么标识,标识没有在目标串中找到模式串。如果又找到,通过NSRange的location成员就能获得模式串在目标串source中的开始下标。
0 0
- 温故而知新,now复习一下Foundation中的字符串对象
- Foundation中的可变字符串对象
- 复习一下字符串算法
- Foundation框架之字符串对象
- 温故而知新-python语法复习
- 复习一下...java中的传值引用
- 温故而知新:Oracle基础知识复习(一)
- 温故而知新:Oracle基础知识复习(二)
- Foundation框架中的字符串(NSString/NSMutableString)
- Foundation框架中的NSString 不可变字符串
- Objective-C Foundation框架中的NSObject对象
- Objective-C Foundation框架中的NSString对象
- Objective-C Foundation框架中的NSMutableString对象
- 温故而知新-面向对象设计原则
- java温故而知新之面向对象
- 温故而知新-----三、面向对象--静态
- 温故而知新: JavaScript arguments 对象详解
- Object-c------Foundation中的结构体和字符串
- c# ribbon
- 卸载Windows 10 内置的App
- 立
- 文章标题
- Android 6.0 运行时权限处理完全解析
- 温故而知新,now复习一下Foundation中的字符串对象
- Deep Learning(深度学习)之(六)【深度神经网络压缩】Deep Compression (ICLR2016 Best Paper)
- 因为未能找到程序集“Microsoft.SqlServer.Types”版本 10 或更高版本。
- 理解Twisted的Deferred机制(一)
- Fragment的用法
- linux 查看磁盘空间大小
- 阿里云+wordpress搭建个人博客网站【小白专用的图文教程】
- std::function与std::bind 函数指针
- [poj2387] Til the Cows Come Home