在Objective-C中删除string中的空格

我有几个string。 有些在开始时有空白,有些则没有。 我想检查一个string是否以空格开头,如果是的话删除它。

在NSString类中有这个方法。 检查stringByTrimmingCharactersInSet:(NSCharacterSet *)set 。 您应该使用[NSCharacterSet whitespaceCharacterSet]作为参数:

 NSString *foo = @" untrimmed string "; NSString *trimmed = [foo stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 

你可以使用带有whitespaceAndNewlineCharacterSet NSCharacterSet的stringByTrimmingCharactersInSet NSString方法:

 NSString *testString = @" Eek! There are leading and trailing spaces "; NSString *trimmedString = [testString stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; 

这将只删除领先的白色空间。

 NSString *myString = @" 123 "; NSLog(@"mystring %@, length %d",myString, myString.length); NSRange range = [myString rangeOfString:@"^\\s*" options:NSRegularExpressionSearch]; myString = [myString stringByReplacingCharactersInRange:range withString:@""]; NSLog(@"mystring %@, length %d",myString, myString.length); 

产量

 mystring 123 , length 9 mystring 123 , length 6 

我写了一个快速macros以减less需要编写的代码量。

第1步:编辑您的应用程序的PCH文件,这应该被命名为Project-Name-Prefix.pch

 #define TRIM(string) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] 

第二步:当你想修剪一个string时,尽量less用代码

 NSLog(@"Output: %@ %@", TRIM(@"Hello "), TRIM(@"World ")); Output: Hello World