web-dev-qa-db-ja.com

Objective-Cの文字列から空白を削除します

いくつかの文字列があります。先頭に空白があるものとそうでないものがあります。文字列が空白で始まっているかどうかを確認したい場合は削除します。

72
Crazer

NSStringクラスにはそのためのメソッドがあります。 stringByTrimmingCharactersInSet:(NSCharacterSet *)setを確認してください。パラメーターとして[NSCharacterSet whitespaceCharacterSet]を使用する必要があります。

NSString *foo = @" untrimmed string ";
NSString *trimmed = [foo stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
206
Eimantas

StringByTrimmingCharactersInSet NSString メソッドをwhitespaceAndNewlineCharacterSet NSCharacterSet と共に使用できます。

NSString *testString = @"  Eek! There are leading and trailing spaces  ";
NSString *trimmedString = [testString stringByTrimmingCharactersInSet:
                             [NSCharacterSet whitespaceAndNewlineCharacterSet]];
69
John Parker

作成する必要があるコードの量を減らすために、簡単なマクロを作成しました。

ステップ1:アプリのPCHファイルを編集します。Project-Name-Prefix.pchという名前にする必要があります

#define TRIM(string) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]

ステップ2:文字列をトリムしたいときは、ずっと少ないコードを書くことを楽しんでください

NSLog(@"Output: %@ %@", TRIM(@"Hello        "), TRIM(@"World      "));

Output: Hello World
7
user511037

これにより、先頭の空白のみが削除されます。

NSString *myString = @"   123   ";
NSLog(@"mystring %@, length %d",myString, myString.length);
NSRange range = [myString rangeOfString:@"^\\s*" options:NSRegularExpressionSearch];
myString = [myString stringByReplacingCharactersInRange:range withString:@""];
NSLog(@"mystring %@, length %d",myString, myString.length);

出力

mystring    123   , length 9
mystring 123   , length 6
6
Ryan Heitner