NSString中的单独数字显示电话号码

Jam*_*nay 3 cocoa-touch objective-c nsstring number-formatting ios

我有一个NSString这样的东西:

4434332124

我怎么能把它变成这样的东西?

443-433-2124

Nir*_*rma 12

这只能在两行中完成,只需使用NSString的stringWithFormat方法,并将电话号码分成单独的子串,并将整个事物粘贴在您的格式字符串中.像这样的东西:

NSString *sPhone = @"4434332124";

NSString *formatted = [NSString stringWithFormat: @"%@-%@-%@", [sPhone substringWithRange:NSMakeRange(A,B)],[sPhone substringWithRange:NSMakeRange(B,C)],
                           [sPhone substringWithRange:NSMakeRange(C,D)]];
Run Code Online (Sandbox Code Playgroud)

编辑:工作代码

NSString *formatted = [NSString stringWithFormat: @"%@-%@-%@", [sPhone substringWithRange:NSMakeRange(0,3)],[sPhone substringWithRange:NSMakeRange(3,3)],
                           [sPhone substringWithRange:NSMakeRange(6,4)]];
Run Code Online (Sandbox Code Playgroud)


Joe*_*Joe 6

如果你想简单快速地替换你确定的10位数字,那么试试这个正则表达式的例子(iOS> = 3.2).

NSString *tenDigitNumber = @"5554449999";
tenDigitNumber = [tenDigitNumber stringByReplacingOccurrencesOfString:@"(\\d{3})(\\d{3})(\\d{4})"
                                                           withString:@"$1-$2-$3"
                                                              options:NSRegularExpressionSearch
                                                                range:NSMakeRange(0, [tenDigitNumber length])];
NSLog(@"%@", tenDigitNumber);
Run Code Online (Sandbox Code Playgroud)