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

Abd*_*mer 4 iphone objective-c nsstring ios

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

我试过这段代码:

newString = [string stringByReplacingOccurrencesOfString:@"\n\n" withString:@"\n"];
Run Code Online (Sandbox Code Playgroud)

但是,如果在字符串中遇到一系列"\n \n \n \n \n \n",则无法获得所需的结果.在这种情况下,它们将被替换为"\n \n \n".

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

谢谢大家!

更新:添加UITextView过滤后的字符串设置为文本的屏幕截图.根据Attila H的回答,在编写代码后,新行似乎不止一行. 在此输入图像描述

Att*_*a H 16

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

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