2013-01-16 58 views
0

可能重复:
iphone sdk - Remove all characters except for numbers 0-9 from a string如何(从字符串中删除

我有串电话号码作为

为mynumber = @“(334)687- 6619“;

我正在使用

NSString *phoneURLString = [NSString stringWithFormat:@"tel:%@", phoneNumber]; 
NSURL *phoneURL = [NSURL URLWithString:phoneURLString]; 
[[UIApplication sharedApplication] openURL:phoneURL]; 

拨打电话。 但由于“(”,“)”我的方法无法拨打电话。

请建议我做一个正确的字符串 像

“1-800-555-1212”或类似的东西。

感谢

+0

@CarlVeazey你确定这是重复的。其他线程删除 ' - ' 从字符串太.. – Krishnabhadra

+0

我得到了我期待的结果。 – iscavengers

+0

哎呀.. @Carl Veazey你的权利.. – Krishnabhadra

回答

2

从字符串中删除字符:

NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@"()"]; 
NSArray *comps = [string componentsSeparatedByCharactersInSet:set]; 
NSString *newString = [comps componentsJoinedByString:@""]; 
5

可以使用

NSString *s = @"(334)687-6619"; 
NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@"("]; 
s = [[s componentsSeparatedByCharactersInSet: doNotWant] componentsJoinedByString: @""]; 

s = [s stringByReplacingOccurrencesOfString:@")" withString:@"-"]; 
NSLog(@"%@", s); 

那么,它将取代 “(” 与 “” &替换“) “与” - “。

谢谢。

+2

如果你在两个步骤(这本身就是多余的)这样做,你甚至不必使用字符集和分裂和连接技巧,你可以只需使用'stringByReplacingOccurrencesOfString:withString:'。 – 2013-01-16 04:29:38

+1

好的我的朋友,它正在工作。问题是关于替换字符串。所以我说了。 –

+0

s = [s stringByReplacingOccurrencesOfString:@“)”withString:@“ - ”];也在工作。感谢队友.. :) –

3

使用此代码

NSString *str = @"(334)687-6619"; 
str = [str stringByReplacingCharactersInRange:NSMakeRange(0, 1) withString:@""]; 
str = [str stringByReplacingCharactersInRange:NSMakeRange(3, 1) withString:@"-"];  
NSLog(@"%@",str); 

输出是: 334-687-6619

+1

好的答案@paras joshi .... – Vishal