在每个单词前面添加字符串空格

时间:2017-04-14 19:49:31

标签: objective-c cocoa nsstring

我正在寻找一种优雅的(至少是一种干净的)方式来在骆驼套装句子中的每个单词之间添加空格。

示例ThisIsASentence应在This Is A Sentence

中进行转换

2 个答案:

答案 0 :(得分:0)

执行此操作的众多方法之一:使用与小写字母匹配的正则表达式(NSRegularExpression)(如果字符串中包含非字母,则使用大写字母),后跟大写字母一个并用两个匹配的字符替换它们,它们之间有一个空格 - 也就是说你在一个体面的文本编辑器中解决这个问题的确切方式(TextWrangler et.al。

如果您在实施代码时遇到问题,请提出一个新问题,说明您的代码并解释您的问题。

答案 1 :(得分: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);