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

我有一个NSString可以在string之间有多个\ n。 我需要用\ n来代替\ n的多次出现。

我试过这个代码:

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

但是,如果在string中遇到一系列“\ n \ n \ n \ n \ n \ n”,则不会产生期望的结果。 在这种情况下,它们将被replace为“\ n \ n \ n”。

我应该怎么做才能把多于一个的“\ n”换成单个“\ n”?

谢谢大家!

更新:为筛选string设置为文本的UITextView添加屏幕截图。 按照Attila H的build议,在编写代码之后,新行似乎不止一个。 在这里输入图像说明

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

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

你可以通过以下方式来完成

 NSArray *arrSplit = [s componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]]; s = [arrSplit componentsJoinedByString:@"\n"]; 

希望它可以帮助你..

你可以把这个replace放在一个循环中,直到你在你的string中创build“\ n \ n”。