web-dev-qa-db-ja.com

NSStringから改行文字を削除する

次のようなNSStringがあります。

Hello 
World
of
Twitter
Lets See this
>

私はそれを次のように変換したい:

Hello World of Twitterでは、こちらをご覧ください>

これどうやってするの? iPhoneでObjective-Cを使用しています。

48
y ramesh rao

文字列をコンポーネントに分割し、スペースで結合します。

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


文字列をコンポーネントに分割して再結合することは、これを行うための非常に長い方法です。私も、ポールが言及したのと同じ方法を使用します。任意の文字列の出現を置き換えることができます。ポールが言ったことに加えて、改行文字を次のようなスペースに置き換えることができます。

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

私は使っています

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

/ポール

9
Paul Peelen

私のケースには、\rを含む\nも含まれていますが、[NSCharacterSet newlineCharacterSet]は、代わりに

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

私の問題を解決しました。

ところで、\\sはすべての空白を削除しますが、これは予期されていません。

3
Kjuly

Swift 3.0バージョンの@hallskiの答えをここに提供:

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

Swift 3.0バージョンの@Kjulyの答えをここに提供します(任意の数の新しい行を1つだけで置き換えます。\ n。誰かが私により良い方法):

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