我有一个类似748973525的字符串,现在我需要在Objective C中将其格式化为748973525
发布于 2012-11-09 17:40:49
解决这个问题的几种方法。我们没有输入字符串的规范;但您可以采用以下方法:
#import <Foundation/Foundation.h>
int main(int argc, char *argv[]) {
NSAutoreleasePool *p = [[NSAutoreleasePool alloc] init];
NSString *original = @"748973525";
NSRegularExpression *exp = [NSRegularExpression regularExpressionWithPattern:@"(\\d{3})(\\d{3})(\\d{3})"
options:0 error:nil];
NSString *new = [exp stringByReplacingMatchesInString:original
options:0 range:NSMakeRange(0,original.length)
withTemplate:@"$1-$2-$3"];
printf("%s",[new UTF8String]);
[p release];
}将748-973-525打印到控制台。
发布于 2012-11-09 17:24:41
使用-[NSString substringWithRange:]将原始字符串拆分为三部分,比如a、b和c,然后使用+[NSString stringWithFormat:]将它们重新组合在一起。
例如:
NSString *s = @"748973525";
NSString
*a = [s substringWithRange: NSMakeRange(0, 3)],
*b = [s substringWithRange: NSMakeRange(3, 3)],
*c = [s substringWithRange: NSMakeRange(6, 3)];
NSString *result = [NSString stringWithFormat: @"%@-%@-%@", a, b, c];当然,这只适用于包含九个或更多字符的字符串;如果s的长度小于九个字符,则substringWithRange将引发异常。
发布于 2012-11-09 17:44:21
使用自定义的“数字格式化程序”并将“分组分隔符”设置为"-“
https://stackoverflow.com/questions/13305066
复制相似问题