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.
Divisez la chaîne en composants et joignez-les par l'espace:
NSString *newString = [[myString componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]] componentsJoinedByString:@" "];
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:@" "];
J'utilise
[...]
myString = [myString stringByReplacingOccurrencesOfString:@"\n\n" withString:@"\n"];
[...]
/Paul
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.
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)));