从NSString中删除所有的空格
我一直试图摆脱NSString中的空白,但没有任何我尝试过的方法工作。 
 我有"this is a test" ,我想得到"thisisatest" 。 
 我使用了whitespaceCharacterSet ,它应该消除空白。 
 NSString *search = [searchbar.text stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]]; 
但我一直得到相同的string与空格。 有任何想法吗?
  stringByTrimmingCharactersInSet只从string的开头和结尾删除字符,而不是中间的字符。 
1)如果你只需要从string中删除一个给定的字符(比如空格字符),使用:
 [yourString stringByReplacingOccurrencesOfString:@" " withString:@""] 
  2)如果你真的需要删除一组字符(即不仅是空格字符,而是任何空格字符,如空格,制表符,牢不可破的空间等),你可以使用whitespaceCharacterSet分割你的string,然后再join单词串: 
 NSArray* words = [yourString componentsSeparatedByCharactersInSet :[NSCharacterSet whitespaceAndNewlineCharacterSet]]; NSString* nospacestring = [words componentsJoinedByString:@""]; 
  请注意,最后一个解决scheme的优点是处理每个空格字符,而不仅仅是空格,但效率低于stringByReplacingOccurrencesOfString:withString:  所以,如果你真的只需要删除空格字符,并确保你不会有任何其他的空格字符比纯空格字符,使用第一种方法。 
我更喜欢使用这样的正则expression式:
 NSString *myString = @"this is a test"; NSString *myNewString = [myString stringByReplacingOccurrencesOfString:@"\\s" withString:@"" options:NSRegularExpressionSearch range:NSMakeRange(0, [myStringlength])]; //myNewString will be @"thisisatest" 
你可以使自己成为NSString的一个类别,使生活更加简单:
 - (NSString *) removeAllWhitespace { return [self stringByReplacingOccurrencesOfString:@"\\s" withString:@"" options:NSRegularExpressionSearch range:NSMakeRange(0, [self length])]; 
}
这里也是一个unit testing的方法:
 - (void) testRemoveAllWhitespace { NSString *testResult = nil; NSArray *testStringsArray = @[@"" ,@" " ,@" basicTest " ,@" another Test \n" ,@"abcdefg" ,@"\n\tA\t\t \t \nB \f C \t ,d,\ve F\r\r\r" ,@" landscape, portrait, ,,,up_side-down ;asdf; lkjfasdf0qi4jr0213 ua;;;;af!@@##$$ %^^ & * * ()+ + " ]; NSArray *expectedResultsArray = @[@"" ,@"" ,@"basicTest" ,@"anotherTest" ,@"abcdefg" ,@"ABC,d,eF" ,@"landscape,portrait,,,,up_side-down;asdf;lkjfasdf0qi4jr0213ua;;;;af!@@##$$%^^&**()++" ]; for (int i=0; i < [testStringsArray count]; i++) { testResult = [testStringsArray[i] removeAllWhitespace]; STAssertTrue([testResult isEqualToString:expectedResultsArray[i]], @"Expected: \"%@\" to become: \"%@\", but result was \"%@\"", testStringsArray[i], expectedResultsArray[i], testResult); } } 
 简单的任务使用stringByReplacingOccurrencesOfString 
 NSString *search = [searchbar.text stringByReplacingOccurrencesOfString:@" " withString:@""]; 
 这可以帮助你,如果你正在经历,而不是   (空格)。 当我试图提取设备联系人电话号码时,我遇到了这个问题。 我需要修改phoneNumberstring,所以它没有空格。 
 NSString* yourString = [yourString stringByReplacingOccurrencesOfString:@"\u00a0" withString:@""]; 
 当yourString是当前的电话号码。 
stringByReplacingOccurrencesOfString将会replacestring中的所有空格,而不仅仅是开始和结束
使用
 [YourString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] 
这是为了消除从任何文本字段中获取文本时的任何空间,但是如果要删除string之间的空间,您可以使用
 xyz =[xyz.text stringByReplacingOccurrencesOfString:@" " withString:@""]; 
它将取代没有空间的空白空间,通过以下方法来处理空白字段:
 searchbar.text=[searchbar.text stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]]; 
 - (NSString *)removeWhitespaces { return [[self componentsSeparatedByCharactersInSet: [NSCharacterSet whitespaceCharacterSet]] componentsJoinedByString:@""]; } 
这对我来说是SWIFT的最佳方式
  let myString = " ciao \n ciao " var finalString = myString as NSString for character in myString{ if character == " "{ finalString = finalString.stringByReplacingOccurrencesOfString(" ", withString: "") }else{ finalString = finalString.stringByReplacingOccurrencesOfString("\n", withString: "") } } println(finalString) 
结果是:ciaociao
但诀窍是这个!
  extension String { var NoWhiteSpace : String { var miaStringa = self as NSString if miaStringa.containsString(" "){ miaStringa = miaStringa.stringByReplacingOccurrencesOfString(" ", withString: "") } return miaStringa as String } } let myString = "Ciao Ciao Ciao".NoWhiteSpace //CiaoCiaoCiao 
使用下面的马科,并删除空间。
 #define TRIMWHITESPACE(string) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] 
在其他文件中调用TRIM:
  NSString *strEmail; strEmail = TRIM(@" this is the test."); 
愿它能帮助你…
 pStrTemp = [pStrTemp stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
我强烈build议把它放在你的项目的某个地方:
 extension String { func trim() -> String { return self.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()) } func trim(withSet: NSCharacterSet) -> String { return self.stringByTrimmingCharactersInSet(withSet) } } 
- NSMutableArray – 强制数组只保存特定的对象types
- Foo类同时在MyApp和MyAppTestCase中实现。 将使用两者之一。 哪一个是未定义的
- 检查一个NSString是否只是空格
- UITableView行animation持续时间和完成callback
- 遍历iPhone上的视图层次结构
- NSWindow与NSWindowCollectionBehaviorStation显示在仪表板上。 这是一个错误?
- 用于创buildNSTextField“标签”的示例代码?
- 我在哪里可以find一个关于iPhone / Objective-Cmultithreading的好教程?
- 什么是解决Objective-C命名空间碰撞的最好方法?