Удаление всех нежелательных символов с помощью NSCharacterSet
Я хотел бы удалить все символы из моего 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
Ответы
Ответ 1
Создайте изменяемый набор символов и добавьте дополнительные символы, которые вы хотите сохранить. Также вы, вероятно, хотите использовать буквенно-цифровой набор символов вместо letterCharacterSet, если вы хотите сохранить номера в своей строке тоже.
NSMutableCharacterSet *charactersToKeep = [NSMutableCharacterSet alphanumericCharacterSet];
[charactersToKeep addCharactersInString:@" ,."];
NSCharacterSet *charactersToRemove = [charactersToKeep invertedSet];
NSString *trimmedReplacement = [[ str componentsSeparatedByCharactersInSet:charactersToRemove] componentsJoinedByString:@"" ];