最快的方法 - 字符串组件之间的逗号

时间:2013-02-10 15:57:00

标签: ios objective-c nsstring

我有一个NSString,让我们说“你好”...... 在每个角色之间使用逗号填充此字符串的最快方法是什么? (包括在第一个字符之前)
因此返回的字符串将是“,H,E,L,L,O”


我只是想做一个for循环并且每次添加逗号时变量都会增加2,这样它将越过新的逗号和下一个字母并添加一个逗号,然后检查该变量除以2是否更大比原始字符串的长度...有更好的方法吗?

2 个答案:

答案 0 :(得分:3)

或者您可以将字符附加到可变字符串:

NSString *original = @"Hello";
NSUInteger len = original.length;

NSMutableString *newStr = [NSMutableString stringWithCapacity:len * 2];
for (int i = 0; i < len; i++) {
    [newStr appendFormat:@",%C", [original characterAtIndex:i]];
}

答案 1 :(得分:0)

如果你喜欢正则表达式,你可以使用它们。不确定性能,因此对于长字符串,您可能需要验证它。

它的内容是两行代码:

NSString *orgString = @"Hello"; // Not part of the meat, for the line counters out there...

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"." 
                                                                       options:0
                                                                         error:nil];

NSString *commaString = [regex stringByReplacingMatchesInString:orgString
                                                        options:0
                                                          range:NSMakeRange(0, orgString.length)
                                                   withTemplate: @",$0"];

我冒昧地不检查正则表达式的错误,因为它只包含一个点。这真的应该在操作系统的未来版本中编译。