私は748973525のような文字列を持っていますが、ObjectiveCで748-973-525のようにフォーマットする必要があります
質問する
174 次
3 に答える
0
を使用して元の文字列を、、およびの-[NSString substringWithRange:]
3 つの部分に分割し、を使用してそれらを再び結合します。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];
もちろん、これは 9 文字以上の文字列に対してのみ機能します。s
長さが 9 未満の場合、substringWithRange
例外が発生します。
于 2012-11-09T09:24:41.327 に答える
0
これを解決するいくつかの方法。入力文字列の仕様はありません。ただし、次を採用できます。
#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-09T09:40:49.037 に答える