我正在从 PDF 读取文本到 NSString。我使用下面的代码替换所有空格

NSString *pdfString = convertPDF(path);
    pdfString=[pdfString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
    pdfString=[pdfString stringByReplacingOccurrencesOfString:@"\r" withString:@""];
    pdfString=[pdfString stringByReplacingOccurrencesOfString:@"\n" withString:@""];

但这也消除了段落空格和多行。我只想替换一次出现的\n 或\r 并保留段落空格或多个制表符和下一行。

最佳答案

有两种方法:

  • 在循环中手动查找

  • 您可以使用 -rangeOfCharactersFromSet:options:range: 获取字符串的范围。这种方法的明珠是减少每个找到的匹配项的搜索范围。这样做您可以简单地将找到的范围与搜索范围进行比较。如果找到的范围在最开始,则它是两倍(或三倍) \r
  • 获取单个组件

  • 使用 -componentsSeparatedByCharactersFromSet: ( NSString ) 返回一个用 \r 分隔的字符串数组。此数组中的空字符串是双倍(或三倍) \r 。只需用 \r 替换它们,然后用空格重新连接组件。

    关于ios - 仅替换 NSString 中出现的\n 或\r,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30077450/

    10-13 04:00