Objective c 使用NSCharacterSet删除所有不需要的字符
我想从我的NSString中删除所有不是(数字、字母、come、space或句点)的字符 我正在使用NSCharacterSet,但它没有添加到其中的方法。我尝试了可变版本来添加空格、逗号和句点,但没有成功Objective c 使用NSCharacterSet删除所有不需要的字符,objective-c,ios,ios4,ios5,Objective C,Ios,Ios4,Ios5,我想从我的NSString中删除所有不是(数字、字母、come、space或句点)的字符 我正在使用NSCharacterSet,但它没有添加到其中的方法。我尝试了可变版本来添加空格、逗号和句点,但没有成功 // str is my string NSCharacterSet *charactersToRemove = [[ NSCharacterSet letterCharacterSet ] invertedSet ]; NSString *trimmedReplacement =
// 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
创建可变字符集并添加要保留的其他字符。此外,如果您还想在字符串中保留数字,您可能打算使用AlphaNumericCharacterSet而不是letterCharacterSet
NSMutableCharacterSet *charactersToKeep = [NSMutableCharacterSet alphanumericCharacterSet];
[charactersToKeep addCharactersInString:@" ,."];
NSCharacterSet *charactersToRemove = [charactersToKeep invertedSet];
NSString *trimmedReplacement = [[ str componentsSeparatedByCharactersInSet:charactersToRemove] componentsJoinedByString:@"" ];
使用不可变字符集的反转比反转可变字符集更有效。