首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Objective C中格式化NSString

在Objective C中格式化NSString
EN

Stack Overflow用户
提问于 2012-11-09 17:13:50
回答 3查看 170关注 0票数 0

我有一个类似748973525的字符串,现在我需要在Objective C中将其格式化为748973525

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-09 17:40:49

解决这个问题的几种方法。我们没有输入字符串的规范;但您可以采用以下方法:

代码语言:javascript
运行
复制
#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打印到控制台。

票数 0
EN

Stack Overflow用户

发布于 2012-11-09 17:24:41

使用-[NSString substringWithRange:]将原始字符串拆分为三部分,比如abc,然后使用+[NSString stringWithFormat:]将它们重新组合在一起。

例如:

代码语言:javascript
运行
复制
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将引发异常。

票数 0
EN

Stack Overflow用户

发布于 2012-11-09 17:44:21

使用自定义的“数字格式化程序”并将“分组分隔符”设置为"-“

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13305066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档