我从 xml 提要中获取纯文本,我想知道是否有可能将该文本拆分为段落。我正在努力:
*htmlbody = [item.text stringByReplacingOccurrencesOfString:@"\n" withString:@"<br />"];
但它不起作用。
我从 xml 提要中获取纯文本,我想知道是否有可能将该文本拆分为段落。我正在努力:
*htmlbody = [item.text stringByReplacingOccurrencesOfString:@"\n" withString:@"<br />"];
但它不起作用。
NSArray *paragraphs = [item.text componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
为您提供所有行终止选项的字符串数组(每段一个)。
enumerateSubstringsInRange:options:usingBlock:
与 一起使用NSStringEnumerationByParagraphs
。
第一种也是最常见的方法是:
NSArray *arr = [myString componentsSeparatedByString:@"\n"];
然而,这忽略了这样一个事实,即段落或换行符可以在字符串中表示的许多其他方式——\r、\r\n 或 Unicode 分隔符。
来自 Apple 的字符串编程指南:
NSString *string = /* assume this exists */;
unsigned length = [string length];
unsigned paraStart = 0, paraEnd = 0, contentsEnd = 0;
NSMutableArray *array = [NSMutableArray array];
NSRange currentRange;
while (paraEnd < length) {
[string getParagraphStart:¶Start end:¶End
contentsEnd:&contentsEnd forRange:NSMakeRange(paraEnd, 0)];
currentRange = NSMakeRange(paraStart, contentsEnd - paraStart);
[array addObject:[string substringWithRange:currentRange]];
}
这将为您提供一系列NSString
与您的段落
听起来你在正确的轨道上。或者至少,这肯定是我会尝试的方法。
也许您的新行包含回车,因此请尝试 \r\n 甚至可能 \n\n 但如果没有您尝试解析的实际内容,则很难辨别您应该使用什么作为分隔符。
查看 componentsSeperatedByString 的 NSString 文档:
NSString *list = @"Norman, Stanley, Fletcher";
NSArray *listItems = [list componentsSeparatedByString:@", "];