如何在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:如何在字符串的每个单词的开头和结尾删除重复的字符?

如何获取以 ^ 开头和结尾的单词

如何在以特定单词开头并以另一个单词结尾的字符串中出现多次[重复]

如何使用正则表达式匹配不以某些字符开头或结尾的单词?

如何在 UITableViewCell 中添加一张或多张图片?

如何使用 JQuery/CSS 选择所有以某个单词开头、包含或结尾的单元格?