Tengo un NSString
que puede tener múltiples \ n entre la cadena. Necesito replace la ocurrencia múltiple de \ n con una sola \ n.
Probé este código:
newString = [string stringByReplacingOccurrencesOfString:@"\n\n" withString:@"\n"];
Pero esto no da el resultado deseado si se encuentra una serie de "\ n \ n \ n \ n \ n \ n" en la cadena. En este caso, se replaceán por "\ n \ n \ n".
¿Qué debo hacer para que más de uno "\ n" sea reemplazado por un solo "\ n"?
¡Gracias a todos!
Actualización: Agregar una captura de pantalla para UITextView
a la cual la cadena filtrada se configura como text. Las nuevas líneas parecen ser más de una después de escribir el código como lo sugiere Attila H en respuesta.
Puede usar NSRegularExpression . Esta es la forma más simple y elegante:
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\n+" options:0 error:NULL]; NSString *newString = [regex stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:@"\n"];
Puedes hacerlo de la siguiente manera
NSArray *arrSplit = [s componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]]; s = [arrSplit componentsJoinedByString:@"\n"];
Espero que te pueda ayudar …
Puedes poner este reemploop dentro de un bucle hasta que sigas fundando "\ n \ n" en tu cadena.