2

我从 xml 提要中获取纯文本,我想知道是否有可能将该文本拆分为段落。我正在努力:

*htmlbody = [item.text stringByReplacingOccurrencesOfString:@"\n" withString:@"<br />"]; 

但它不起作用。

4

4 回答 4

5
NSArray *paragraphs = [item.text componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];

为您提供所有行终止选项的字符串数组(每段一个)。

于 2011-10-04T09:23:04.980 回答
3

enumerateSubstringsInRange:options:usingBlock:与 一起使用NSStringEnumerationByParagraphs

于 2013-05-24T12:29:22.593 回答
1

第一种也是最常见的方法是:

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:&paraStart end:&paraEnd
                      contentsEnd:&contentsEnd forRange:NSMakeRange(paraEnd, 0)];
        currentRange = NSMakeRange(paraStart, contentsEnd - paraStart);
        [array addObject:[string substringWithRange:currentRange]];
    }

这将为您提供一系列NSString与您的段落

于 2011-10-04T09:05:34.753 回答
0

听起来你在正确的轨道上。或者至少,这肯定是我会尝试的方法。

也许您的新行包含回车,因此请尝试 \r\n 甚至可能 \n\n 但如果没有您尝试解析的实际内容,则很难辨别您应该使用什么作为分隔符。

查看 componentsSeperatedByString 的 NSString 文档:

NSString *list = @"Norman, Stanley, Fletcher";
NSArray *listItems = [list componentsSeparatedByString:@", "];
于 2011-10-04T09:07:31.927 回答