首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将空白序列折叠为单个字符并修剪字符串

将空白序列折叠为单个字符并修剪字符串
EN

Stack Overflow用户
提问于 2009-04-16 21:59:43
回答 10查看 63.9K关注 0票数 122

考虑以下示例:

代码语言:javascript
复制
"    Hello      this  is a   long       string!   "

我想把它转换成:

代码语言:javascript
复制
"Hello this is a long string!"
EN

回答 10

Stack Overflow用户

发布于 2009-09-15 13:36:34

OS X 10.7+和iOS 3.2+

使用hfossli提供的原生regexp solution

否则

使用您最喜欢的regexp库或使用以下Cocoa原生解决方案:

代码语言:javascript
复制
NSString *theString = @"    Hello      this  is a   long       string!   ";

NSCharacterSet *whitespaces = [NSCharacterSet whitespaceCharacterSet];
NSPredicate *noEmptyStrings = [NSPredicate predicateWithFormat:@"SELF != ''"];

NSArray *parts = [theString componentsSeparatedByCharactersInSet:whitespaces];
NSArray *filteredArray = [parts filteredArrayUsingPredicate:noEmptyStrings];
theString = [filteredArray componentsJoinedByString:@" "];
票数 125
EN

Stack Overflow用户

发布于 2009-09-15 13:18:22

实际上,有一个非常简单的解决方案:

代码语言:javascript
复制
NSString *string = @" spaces in front and at the end ";
NSString *trimmedString = [string stringByTrimmingCharactersInSet:
                                  [NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSLog(@"%@", trimmedString)

(Source)

票数 41
EN

Stack Overflow用户

发布于 2010-11-04 18:19:36

使用正则表达式,但不需要任何外部框架:

代码语言:javascript
复制
NSString *theString = @"    Hello      this  is a   long       string!   ";

theString = [theString stringByReplacingOccurrencesOfString:@" +" withString:@" "
                       options:NSRegularExpressionSearch
                       range:NSMakeRange(0, theString.length)];
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/758212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档