使用NSCharacterSet删除所有不需要的字符

Faz*_* Ya 11 objective-c ios4 ios ios5

我想从我的NSString中删除所有不是(数字,字母,来,空格或句点)的字符.

我正在使用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
Run Code Online (Sandbox Code Playgroud)

jon*_*oll 34

创建可变字符集并添加要保留的其他字符.如果你想在字符串中保留数字,你可能也意味着使用字母数字字符集而不是letterCharacterSet.

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

NSCharacterSet *charactersToRemove = [charactersToKeep invertedSet];

NSString *trimmedReplacement = [[ str componentsSeparatedByCharactersInSet:charactersToRemove] componentsJoinedByString:@"" ];
Run Code Online (Sandbox Code Playgroud)