0

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


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

4

2 回答 2

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]];
}
于 2013-02-10T16:02:44.183 回答
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"];

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

于 2013-02-10T16:16:56.003 回答