我有几个字符串。有些字符串开头有空格,有些没有。我想检查一个字符串是否以空格开头,如果是,则将其删除。
NSString类中有一个方法可以实现这一功能。请查看stringByTrimmingCharactersInSet:(NSCharacterSet *)set
。您应该将[NSCharacterSet whitespaceCharacterSet]
作为参数使用:
NSString *foo = @" untrimmed string ";
NSString *trimmed = [foo stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
stringByTrimmingCharactersInSet
只会移除字符串开头和结尾的字符,而不是中间的字符。如果您想要移除字符串中间的空格,请使用 [yourString stringByReplacingOccurrencesOfString:@" " withString:@""]
。 - Arnab您可以使用 NSString 的 stringByTrimmingCharactersInSet 方法,结合 NSCharacterSet 中的 whitespaceAndNewlineCharacterSet 来实现:
NSString *testString = @" Eek! There are leading and trailing spaces ";
NSString *trimmedString = [testString stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
whitespaceAndNewlineCharacterSet
而不是只使用whitespaceCharacterSet
,给你一个赞(+1)。 - Rik Smith-Unna这将仅删除前导空格。
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
#define TRIM(string) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]
NSLog(@"Output: %@ %@", TRIM(@"Hello "), TRIM(@"World "));
Output: Hello World