如何在NSString中每个单词的开头和结尾添加一个字符
Posted
技术标签:
【中文标题】如何在NSString中每个单词的开头和结尾添加一个字符【英文标题】:How to add a character at start and end of every word in NSString 【发布时间】:2016-04-20 12:22:02 【问题描述】:假设我有这个:
NSString *temp=@"its me";
现在假设我想在每个单词的开头和结尾都使用'"',我怎样才能得到这样的结果:
"its" "me"
我必须使用正则表达式吗?
【问题讨论】:
伪码replace("\\b", "\"")
【参考方案1】:
如果字符串中有标点符号,用空格分隔可能不够。
使用word boundary \b
:它匹配开头和结尾的单词边界(也就是说,它会匹配单词和非单词字符之间的空格,如果后面/前面也匹配字符串的开头/结尾带有单词字符。
NSError *error = nil;
NSString *myText = @"its me";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\b" options:NSRegularExpressionCaseInsensitive|NSRegularExpressionAnchorsMatchLines error:&error];
NSString *modifiedString = [regex stringByReplacingMatchesInString:myText options:0 range:NSMakeRange(0, [myText length]) withTemplate:@"\""];
NSLog(@"%@", modifiedString); // => "its" "me"
见IDEONE demo
查看regex syntax in Objective C here的更多详情。
【讨论】:
【参考方案2】:你可以这样做,
NSString *str = @"its me";
NSMutableString *resultStr = [[NSMutableString alloc]init];
NSArray *arr = [str componentsSeparatedByString:@" "];
for (int i = 0; i < arr.count; i++)
NSString *tempStr = [NSString stringWithFormat:@"\"%@\"",arr[i]];
resultStr = [resultStr stringByAppendingString:[NSString stringWithFormat:@"%@ ",tempStr]];
NSLog(@"result string is : %@",resultStr);
希望这会有所帮助:)
【讨论】:
以上是关于如何在NSString中每个单词的开头和结尾添加一个字符的主要内容,如果未能解决你的问题,请参考以下文章
GNU R:如何在字符串的每个单词的开头和结尾删除重复的字符?
如何在以特定单词开头并以另一个单词结尾的字符串中出现多次[重复]