2012-03-12 13 views
10

NSStringから(数値、アルファベット、数字、スペース、またはピリオド)ではない文字をすべて削除します。NSCharacterSetを使用して不要な文字をすべて削除する

NSCharacterSetを使用していますが、追加する方法はありません。スペース、カンマ、ピリオドを追加するために変更可能なバージョンを試しましたが、成功しませんでした。

// str is my string 
NSCharacterSet *charactersToRemove = 
[[ NSCharacterSet letterCharacterSet ] invertedSet ]; 

NSString *trimmedReplacement = 
[[ str componentsSeparatedByCharactersInSet:charactersToRemove ] 
componentsJoinedByString:@"" ]; 
// this removes spaces, periods, and commas too. How do I add in to the character set to keep them 

答えて

32

変更可能な文字セットを作成し、追加する文字を追加します。また、文字列に数値を保持したい場合は、letterCharacterSetの代わりにalphanumericCharacter setを使用することを意味します。

NSMutableCharacterSet *charactersToKeep = [NSMutableCharacterSet alphanumericCharacterSet]; 
[charactersToKeep addCharactersInString:@" ,."]; 

NSCharacterSet *charactersToRemove = [charactersToKeep invertedSet]; 

NSString *trimmedReplacement = [[ str componentsSeparatedByCharactersInSet:charactersToRemove] componentsJoinedByString:@"" ]; 
+0

不変文字セットの逆を使用すると、可変文字セットを反転するよりもはるかに効率的です。 –

関連する問題