2011-01-10 13 views
64

私はいくつかの文字列を持っています。いくつかのものは、最初は空白で、ないものもあります。文字列が空白で始まるかどうかをチェックし、空白文字があればそれを取り除きたい。Objective-Cの文字列から空白を削除します

+0

少しの検索でも問題はありません。 [Cocoa Touchの文字列から空白を切り取る最善の方法は何ですか?](http://stackoverflow.com/questions/474270/whats-the-best-way-to-trim-whitespace-from-a -string-in-cocoa-touch) – Abizern

答えて

192

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

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

これは末尾の空白を削除します(元の質問は最初から削除するように求められます)。 – lnafziger

+0

'stringByTrimmingCharactersInSet'は文字を最初から削除します。文字列の途中のスペースを削除しようとしている人は '[yourString stringByReplacingOccurrencesOfString:@" "withString:@" "]'を使用してください。 –

65

次のようなwhitespaceAndNewlineCharacterSet NSCharacterSetでstringByTrimmingCharactersInSet NSStringメソッドを使用することができます。

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

+1 whitespaceCharacterSetだけでなく、whitespaceCharacterSet。 –

+1

-1、改行を含まないように空白を再定義するためのAppleへ(代わりに、新しいinlineWhitespaceCharacterSetを作成する必要があります) – AlexChaffee

+0

これは末尾の空白を整える(これは望ましいかもしれないし、そうでないかもしれない。 (最初の質問は、それを最初から削除するよう求めています)。 – lnafziger

6

これが唯一の主要な空白を削除します。

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 
+0

これは先頭の空白を整えるのに最適なソリューションです – jcpennypincher

5

私が書くことに必要なコードの量を減らすために迅速なマクロを書きました。

ステップ1:これは

プロジェクト名-Prefix.pch

#define TRIM(string) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] 
名前を付ける必要があり、あなたのアプリのPCHファイルを編集します。ステップ2:あなたは、文字列

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

Output: Hello World 
をトリミングする際の方法より少ないコードを書くお楽しみください
関連する問題