我有两个字符串。有些人在开始时有空白,有些则没有。我想检查字符串是否以空格开头,如果是,则将其删除。
答案 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