web-dev-qa-db-fra.com

Suppression de nouveaux caractères de ligne de NSString

J'ai un NSString comme ceci:

Hello 
World
of
Twitter
Lets See this
>

Je veux le transformer en:

Bonjour le monde de Twitter permet de voir ceci>

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

48
y ramesh rao

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

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


Fractionner la chaîne en composants et les rejoindre est une manière très longue de procéder. Moi aussi, j'utilise la même méthode que Paul a mentionnée. Vous pouvez remplacer toutes les occurrences de chaîne. Suite à ce que Paul a dit, vous pouvez remplacer les nouveaux caractères de ligne par des espaces comme celui-ci:

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

J'utilise

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

/Paul

9
Paul Peelen

Mon étui contient également \r, comprenant \n, [NSCharacterSet newlineCharacterSet] ne fonctionne pas à la place en utilisant

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

résolu mon problème.

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

3
Kjuly

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

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

Fournir un Swift 3.0 version de la réponse de @Kjuly ici (Notez qu'il remplace un certain nombre de nouvelles lignes par un seul\n. Je préférerais ne pas utiliser le service express régulier si quelqu'un peut me pointer un meilleure façon):

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