之間的逗號我有一個NSString,讓我們說「你好」 ...... 什麼是填補這個字符串了在每個字符之間用逗號最快的方法? (第一個字符之前含)
,返回的字符串將是「 H,E,L,L,O」最快的方法 - 字符串組件
我只是鑼做一個for循環,並有上升2變量每一個逗號添加這樣它會走過去的新逗號和一個字母,並添加然後一個逗號檢查,如果該變量除以2比原字符串的長度更長的時間......有沒有更好的方法?
之間的逗號我有一個NSString,讓我們說「你好」 ...... 什麼是填補這個字符串了在每個字符之間用逗號最快的方法? (第一個字符之前含)
,返回的字符串將是「 H,E,L,L,O」最快的方法 - 字符串組件
我只是鑼做一個for循環,並有上升2變量每一個逗號添加這樣它會走過去的新逗號和一個字母,並添加然後一個逗號檢查,如果該變量除以2比原字符串的長度更長的時間......有沒有更好的方法?
或者你可以追加字符到一個可變的字符串:
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]];
}
如果你看中的正則表達式,你可以使用這些。不知道性能,因此對於長串則可能需要驗證。
它的肉是兩行代碼:
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-10 16:47:43
不要擔心速度,直到這是一個問題。避免過早優化。 – zaph 2013-02-10 16:18:09