2017-04-14 126 views

回答

0

之一許多方法可以做到這一點轉變:使用正則表達式(NSRegularExpression)相匹配小寫字母(或不大寫字母,如果你有不信在字符串中跟着是一個大寫的),並用兩個匹配的字符替換它們與它們之間的空間 - 即究竟如何你會在一個體面的文本編輯器(的TextWrangler等人

解決這個問題如果您在執行代碼時遇到問題,請提出一個顯示您的代碼並解釋的新問題解決你的問題。

0

正則表達式的簡單解決方案,它只考慮大寫字符A-Z

正則表達式模式(?<!^)[A-Z]搜索不是字符串開頭的單個大寫字符。

NSMutableString *camelCaseString = @"ThisIsASentence".mutableCopy; 
NSString *pattern = @"(?<!^)[A-Z]"; 
NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:pattern options:0 error:nil]; 
[regex replaceMatchesInString:camelCaseString options:0 range:NSMakeRange(0, camelCaseString.length) withTemplate:@" $0"]; 
NSLog(@"%@", camelCaseString); 
+0

感謝您的建議,但正則表達式是我想避免這樣一個簡單的事情。 –

+0

你寫*優雅*和*乾淨* ;-) – vadian

+0

最後我剛剛發現這種方式http://stackoverflow.com/questions/1918972/camelcase-to-underscores-and-back-in-objective-c似乎做這項工作 –

相關問題