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”。