2013-02-10 89 views
0

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


我只是锣做一个for循环,并有上升2变量每一个逗号添加这样它会走过去的新逗号和一个字母,并添加然后一个逗号检查,如果该变量除以2比原字符串的长度更长的时间......有没有更好的方法?

+1

不要担心速度,直到这是一个问题。避免过早优化。 – zaph 2013-02-10 16:18:09

回答

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]]; 
} 
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"]; 

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

+0

矫枉过正。正则表达式很重。 – 2013-02-10 16:47:43

相关问题