黑马程序员技术交流社区

标题: NSString截取字符串总结 [打印本页]

作者: hee    时间: 2014-12-6 19:39
标题: NSString截取字符串总结
本帖最后由 hee 于 2014-12-6 19:43 编辑

本人刚刚入门,总结了几个方法,大家共同进步下。
1> 首先,先列举出几个常用的方法:
- (NSString *)substringFromIndex: (NSUInteger)from;
从指定位置from开始(包括指定位置的字符)到尾部

- (NSString *)substringToIndex: (NSUInteger)to;
从字符串的开头一直截取到指定的位置to,但不包括该位置的字符

- (NSString *)substringWithRange: (NSRange)range;
按照所给出的NSRange从字符串中截取子串

- (NSRange)rangeOfString: (NSString *)aString;
用来检查字符串内容中是否包含了aString
如果包含, 就返回aString的范围
如果不包含, NSRange的location为NSNotFound, length为0

2> 再次,说明一下上述用到的一些对象:
NSRange用来表示事物的一个范围,通常是字符串里的字符范围或者数组里的元素范围。
NSRange有2个成员
NSUInteger location : 表示该范围的起始位置
NSUInteger length : 表示该范围内的长度

NSRange是Foundation框架中比较常用的结构体, 它的定义如下:
typedef struct _NSRange {
    NSUInteger location;
    NSUInteger length;
} NSRange;

比如@“I love IOS”中的@“love”可以用location为2,length为4的范围来表示,通过起始点为0开始计算。

截取字符串love方法如下:
// 原字符串
NSString * str = @"I love IOS";
// 截取的范围 rangeOfString:求出"love"的location和length
NSRange  range = [str rangeOfString: @"love"];
// 截取后的字符串
NSString * substr = [str substringWithRange:range];

扩展:范围也可以手动自己指定,指定方法如下:
NSRange range = NSMakeRange(2,4);// 此方法可以进头文件得知






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2