1. ホーム
  2. objective-c

[解決済み] NSStringからすべての空白文字を削除する

2022-06-12 10:35:23

質問

の中の空白を取り除こうとしています。 NSString の空白を削除しようとしましたが、どの方法もうまくいきませんでした。

私は "this is a test" を取得したいのですが "thisisatest" .

私はこれまで whitespaceCharacterSet で、空白をなくすことになっています。

NSString *search = [searchbar.text stringByTrimmingCharactersInSet:
                           [NSCharacterSet whitespaceCharacterSet]];

という文字列が表示されますが、スペースが入った同じ文字列が表示され続けています。何かいい方法はないでしょうか?

どのように解決するのですか?

stringByTrimmingCharactersInSet は、文字列の先頭と末尾の文字のみを削除し、途中の文字は削除しません。

1) 文字列から指定された文字(例えばスペース文字)だけを削除する必要がある場合、使用します。

[yourString stringByReplacingOccurrencesOfString:@" " withString:@""]

2) もし本当にある文字(つまりスペースだけでなく、スペース、タブ、アンブレイカブルスペースなどのあらゆる空白文字)を削除する必要があるのなら、文字列を分割するのに whitespaceCharacterSet を使用して文字列を分割し、1 つの文字列で再び単語を結合します。

NSArray* words = [yourString componentsSeparatedByCharactersInSet :[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSString* nospacestring = [words componentsJoinedByString:@""];

この最後の解決策は、スペースだけでなくすべての空白文字を扱えるという利点がある一方で stringByReplacingOccurrencesOfString:withString: . ですから、本当にスペース文字だけを除去する必要があり、プレーンなスペース文字以外のホワイトスペース文字がないことが確実な場合は、最初の方法を使用してください。