根據(jù)段落來拆分字符串
- (void)getParagraphStart:(nullable NSUInteger *)startPtr end:(nullable NSUInteger *)parEndPtr contentsEnd:(nullable NSUInteger *)contentsEndPtr forRange:(NSRange)range;
//startPtr:段落的開始下標
//parEndPtr:該段落的結(jié)束下標
//contentsEndPtr:一共有多少個字符
//range:在這個范圍內(nèi)查找.len = 0.表示搜索到結(jié)尾.
示例代碼:
/** * 遍歷傳入的Attr,按照段落進行分割,返回分割后的數(shù)組*/
- (NSArray *)paragraphsForAttributedString:(NSAttributedString *)input {
NSMutableArray *paragraphs = [NSMutableArray array];
NSUInteger length = [input length];
NSUInteger paraStart = 0, paraEnd = 0, contentsEnd = 0;
NSRange currentRange;
while (paraEnd < length) {
[input.string getParagraphStart:?Start end:?End
contentsEnd:&contentsEnd forRange:NSMakeRange(paraEnd, 0)];
currentRange = NSMakeRange(paraStart, contentsEnd - paraStart);
if (currentRange.length > 0)
[paragraphs addObject:[input attributedSubstringFromRange:currentRange]];
else
[paragraphs addObject:[[NSAttributedString alloc] init]];
}
return paragraphs;
}
根據(jù)指定字符來拆分字符串,但該方式忽略了\r,\n或unicode字符,如有有需要請用上面的方式.
> - (NSArray*)componentsSeparatedByString:(NSString *)separator;