目标C中的格式NSSTRING



我有一个像748973525这样的字符串,我需要在目标C

中像748-973-525一样格式化它

解决此问题的几种方法。我们没有输入字符串的规格;但是您可以采用以下内容:

#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打印到控制台。

使用自定义"数字格式",然后将"分组分隔符"设置为" - "

使用-[NSString substringWithRange:]将原始字符串分为三个部分,例如abc,然后使用+[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的长度少于9,则substringWithRange会引起例外。

最新更新