iphone - NSString 用单个换行符替换重复的换行符

标签 iphone ios objective-c nsstring

我有一个 NSString,它可以在字符串之间有多个\n。我需要用单个\n 替换多次出现的\n。

我试过这段代码:

newString = [string stringByReplacingOccurrencesOfString:@"\n\n" withString:@"\n"];

但是如果在字符串中遇到一系列“\n\n\n\n\n\n”,这不会给出预期的结果。在这种情况下,它们将被替换为“\n\n\n”。

我应该怎么做才能将所有多个“\n”替换为单个“\n”?

感谢大家!

更新:为 UITextView 添加屏幕截图,过滤后的字符串设置为文本。按照 Attila H 在回答中的建议编写代码后,新行似乎不止一行。 enter image description here

最佳答案

您可能会使用 NSRegularExpression .这是最简单优雅的方式:

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\n+" options:0 error:NULL];
NSString *newString = [regex stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:@"\n"];

关于iphone - NSString 用单个换行符替换重复的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15876053/

相关文章:

iOS拆分字符串

ios - NSString float ……如果NSString不是数字并且包含字母数字字符,会发生什么?

iphone - 仅将图像保存到自定义相册

ios - IOS如何添加、旋转、拖线?

iphone - iOS 开发 : What are some ways I can troubleshoot a lag issue in my game that occurs 15 - 30 minutes after playing it?

iphone - 我的表格 View 发生了奇怪的事情

iphone - 如何对 UILabel 的 textColor 进行动画处理?

iOS:正则表达式:匹配带引号的字符串或不带引号的字符串

objective-c - 将图层阴影绘制到 PDF 上下文

ios - 呈现 SecondViewController 时重复调用 ViewDidAppear