从Objective-C中的字符串中删除空格

时间:2011-01-10 10:17:15

标签: objective-c string whitespace

我有两个字符串。有些人在开始时有空白,有些则没有。我想检查字符串是否以空格开头,如果是,则将其删除。

4 个答案:

答案 0 :(得分:205)

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

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

答案 1 :(得分:67)

您可以将stringByTrimmingCharactersInSet NSString方法与whitespaceAndNewlineCharacterSet NSCharacterSet一起使用:

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

答案 2 :(得分:6)

这将仅删除前导空格。

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

答案 3 :(得分:6)

我编写了一个快速宏来减少需要编写的代码量。

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

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

第2步:当你想修剪一个字符串

时,尽量少写代码
NSLog(@"Output: %@ %@", TRIM(@"Hello        "), TRIM(@"World      "));

Output: Hello World