我有一个包含传真电话号码的NSString。有时我会输入不同的格式,例如:(877)xxx-xxxx或877-xxx-xxxx。
如何清理NSSString以便我得到的只是XXXxxxxxx。
由于
答案 0 :(得分:1)
使用NSCharacterSet
和NSMutableCharacterSet
,您可以通过两种方式解决此问题。
如果您已经知道要删除的字符。
NSCharacterSet *charSet = [NSCharacterSet characterSetWithCharactersInString:@"+-(),. "];
NSArray *arrayWithNumbers = [str componentsSeparatedByCharactersInSet:charSet];
NSString *numberStr = [arrayWithNumbers componentsJoinedByString:@""];
如果您不知道字符,可以使用已有的不同字符集
NSMutableCharacterSet *charSet = [NSMutableCharacterSet new];
[charSet formUnionWithCharacterSet:[NSCharacterSet whitespaceCharacterSet]];
[charSet formUnionWithCharacterSet:[NSCharacterSet punctuationCharacterSet]];
[charSet formUnionWithCharacterSet:[NSCharacterSet symbolCharacterSet]];
NSArray *arrayWithNumbers = [str componentsSeparatedByCharactersInSet:charSet];
NSString *numberStr = [arrayWithNumbers componentsJoinedByString:@""];