从NSString中删除特定字符

时间:2015-03-02 05:14:04

标签: ios objective-c nsstring

例如,如果我有一个像

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

我希望删除这些空格,并获取类似"ABCDEFG"的字符串。

我可以用

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

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

我想知道我的电话号码是否存储在字符串中 +1-(937)673-3451我将如何仅删除第一个" 1" " +" " - "和#34;("")"。

总的来说,我想知道是否可以删除第一个" 1"没有删除字符串中的最后一个?

1 个答案:

答案 0 :(得分:0)

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

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);

但实际上你想使用一个知道电话号码应该是什么样的图书馆,比如libPhoneNumber