【问题标题】:Divide NSStrings into paragraphs将 NSString 分成段落
【发布时间】:2011-10-04 08:52:01
【问题描述】:

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

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

但它不起作用。

【问题讨论】:

    标签: objective-c ios paragraph


    【解决方案1】:
    NSArray *paragraphs = [item.text componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
    

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        NSArray *arr = [myString componentsSeparatedByString:@"\n"];
        

        然而,这忽略了有许多其他方法的事实 其中段落或换行符可以用字符串表示—\r, \r\n 或 Unicode 分隔符。

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

        这会给你一个NSString数组和你的段落

        【讨论】:

          【解决方案4】:

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

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

          查看 componentsSeperatedByString 的 NSString 文档:

          NSString *list = @"Norman, Stanley, Fletcher";
          NSArray *listItems = [list componentsSeparatedByString:@", "];
          

          【讨论】:

            猜你喜欢
            • 2016-04-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-06-01
            • 2020-09-21
            • 2011-10-23
            • 2017-08-28
            相关资源
            最近更新 更多