从 NSString 中删除特定字符

Removing Specific Characters from NSString

例如,如果我有一个像

这样的字符串
NSString *myString = @"A B C D E F G";

我想删除空格,得到一个像 "ABCDEFG".

这样的字符串

我可以使用

NSString *stringWithoutSpaces = [myString stringByReplacingOccurrencesOfString:@" " withString:@""];

但是,对于我的应用程序,我正在加载地址簿中的 phone 个号码 并且数字通常具有不同的格式布局。

我想知道我是否有一个 phone 数字存储在像这样的字符串中 +1-(937)673-3451 我将如何只删除第一个“1”、“+”、“-”和“(”“)”。

总的来说,我想知道是否可以在不删除字符串中最后一个的情况下删除第一个“1”?

有很多方法可以做到这一点。这是一个:

NSString *phoneNumber = @"+1-(937)673-3451";
NSCharacterSet *removalCharacterSet = [NSCharacterSet characterSetWithCharactersInString:@"+()-"];
NSArray *components = [phoneNumber componentsSeparatedByCharactersInSet:removalCharacterSet];
NSString *simplifiedPhoneNumber = [components componentsJoinedByString:@""];
NSRange firstCharacterRange = NSMakeRange(0, 1);
if ([[simplifiedPhoneNumber substringWithRange:firstCharacterRange] isEqualToString:@"1"]) {
     simplifiedPhoneNumber = [simplifiedPhoneNumber stringByReplacingCharactersInRange:firstCharacterRange withString:@""];
}
NSLog(@"Full phone number: %@", phoneNumber);
NSLog(@"Simplified phone number: %@", simplifiedPhoneNumber);

但你真的想使用一个知道 phone 数字应该是什么样子的库,比如 libPhoneNumber.