50 votes

Suppression des caractères de nouvelle ligne de NSString

J'ai un NSString comme ça :

Hello 
World
of
Twitter
Lets See this
>

Je veux le transformer en :

Bonjour le monde de Twitter Voyons cela >

Comment puis-je le faire ? J'utilise Objective-C sur un iPhone.

133voto

hallski Points 27832

Divisez la chaîne en composants et joignez-les par un espace :

NSString *newString = [[myString componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]] componentsJoinedByString:@" "];

87voto

imnk Points 2576

Diviser la chaîne de caractères en composants et les réunir est un moyen très fastidieux de le faire. J'utilise moi aussi la même méthode que celle mentionnée par Paul. Vous pouvez remplacer toutes les occurrences de la chaîne. En plus de ce que Paul a dit, vous pouvez remplacer les caractères de nouvelle ligne par des espaces comme ceci :

myString = [myString stringByReplacingOccurrencesOfString:@"\n" withString:@" "];

9voto

Paul Peelen Points 3770

J'utilise

[...]
myString = [myString stringByReplacingOccurrencesOfString:@"\n\n" withString:@"\n"];
[...]

/Paul

4voto

Kjuly Points 15089

Mon dossier contient également \r dont \n , [NSCharacterSet newlineCharacterSet] ne fonctionne pas, au lieu de cela, en utilisant

htmlContent = [htmlContent stringByReplacingOccurrencesOfString:@"[\r\n]"
                                                     withString:@""
                                                        options:NSRegularExpressionSearch
                                                          range:NSMakeRange(0, htmlContent.length)];

a résolu mon problème.

Au fait, \\s supprimera tous les espaces blancs, ce qui n'est pas prévu.

2voto

Michael Shang Points 466

Fournir une version Swift 3.0 de la réponse de @hallski ici :

self.content = self.content.components(separatedBy: CharacterSet.newlines).joined(separator: " ")

Fournir une version Swift 3.0 de la réponse de @Kjuly ici (Notez qu'elle remplace un nombre quelconque de nouvelles lignes par une seule \n. Je préférerais ne pas utiliser l'expression régulière si quelqu'un peut m'indiquer un meilleur moyen) :

self.content = self.content.replacingOccurrences(of: "[\r\\n]+", with: "\n", options: .regularExpression, range: Range(uncheckedBounds: (lower: self.content.startIndex, upper: self.content.endIndex)));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X