2013-02-10 83 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

相關問題