【问题标题】:Adding New Lines / Breaks / Paragraphs into a Long NSString在长 NSString 中添加新行/换行符/段落
【发布时间】:2013-08-29 22:25:21
【问题描述】:

我有一个派生自 Atom XML 提要的NSString。我得到的数据充满了 HTML 语法、各种标签、链接等等。我获取整个字符串并通过stringByConvertingHTMLToPlainText 方法运行它,该方法是MWFeedParser 库的一部分。

这很好用,给了我很长的NSString - 基本上是我正在解析的提要的完整新闻故事。

我想把那长长的单个 NSString 分成几个段落,以使其在我的应用程序中更具可读性,而不是一个长的可滚动的未格式化文本列表。无论如何我可以应用段落或换行并像那样分解字符串吗?

【问题讨论】:

  • 字符串中是否有换行符/换行符?
  • @MJN 否。 stringByConvertingHTMLToPlainText 方法会删除所有内容。它确实有

    标签,但没有 \n。如果它有 \n 我会使用类似 replaceStringWithOccurencesOfString 或类似的东西。它本质上只是纯文本。

  • 在通过 html 剥离器运行包含 html 的原始字符串之前,请将原始长字符串分解为数组。然后,您可以进一步从每个数组中剥离 html。你想打破什么?我将提供示例代码以获得答案。
  • 我想打破

    并按预期获取段落是有意义的

标签: ios objective-c nsstring


【解决方案1】:

您可以使用componentsSeparatedByString: 将长字符串拆分为字符串数组。然后对于数组中的每个元素(段落),通过stringByConvertingHTMLToPlainText 运行字符串以去除剩余的html标签。

您可能希望在去除 html 标签后对内容或段落做更多的工作。

NSString *htmlString = @"<p>first paragraph</p><p>second paragraph</p><p>thrid paragraph</p>";
NSArray *paragraphs = [htmlString componentsSeparatedByString: @"<p>"]; // still includes </p>
for (NSString *singleParagraph in paragraphs) {
    // strip out remaining html tags
    singleParagraph = [singleParagraph stringByConvertingHTMLToPlainText];
}

// strip out empty or irrelevant indexes and paragraphs you don't need

【讨论】:

    猜你喜欢
    • 2013-04-30
    • 1970-01-01
    • 1970-01-01
    • 2011-03-09
    • 2020-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多