我从xml feed获取纯文本,我想知道是否有可能将该文本拆分成段落。我在尝试:
*htmlbody = [item.text stringByReplacingOccurrencesOfString:@"\n" withString:@"<br />"];
但它不起作用。
答案 0 :(得分:5)
NSArray *paragraphs = [item.text componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
为所有行终止选项提供一个字符串数组(每个段落一个)。
答案 1 :(得分:3)
将enumerateSubstringsInRange:options:usingBlock:
与NSStringEnumerationByParagraphs
一起使用。
答案 2 :(得分:1)
第一种也是最常见的方法是:
NSArray *arr = [myString componentsSeparatedByString:@"\n"];
然而,这忽略了存在许多其他方式的事实 其中段落或换行符可以用字符串表示 - \ r, \ r \ n,或Unicode分隔符。
来自Apple的String Programming Guide:
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
段落
答案 3 :(得分:0)
听起来你走在正确的轨道上。或者至少,这肯定是我会尝试的方法。
也许你的新行包含回车符,所以尝试\ r \ n或者甚至可能\ n \ n但是如果没有你试图解析它的实际内容,很难分辨出你应该使用什么作为分隔符。
查看componentsSeperatedByString的NSString文档:
NSString *list = @"Norman, Stanley, Fletcher";
NSArray *listItems = [list componentsSeparatedByString:@", "];