【发布时间】:2011-01-10 10:17:15
【问题描述】:
我有几个字符串。有些在开头有空格,有些则没有。我想检查一个字符串是否以空格开头,如果是则删除它。
【问题讨论】:
标签: objective-c string whitespace
我有几个字符串。有些在开头有空格,有些则没有。我想检查一个字符串是否以空格开头,如果是则删除它。
【问题讨论】:
标签: objective-c string whitespace
在 NSString 类中有这样的方法。检查stringByTrimmingCharactersInSet:(NSCharacterSet *)set。您应该使用[NSCharacterSet whitespaceCharacterSet] 作为参数:
NSString *foo = @" untrimmed string ";
NSString *trimmed = [foo stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
【讨论】:
stringByTrimmingCharactersInSet 只删除字符串开头和结尾的字符,而不是中间的字符。对于那些试图删除字符串中间空格的人,请使用[yourString stringByReplacingOccurrencesOfString:@" " withString:@""]。
您可以将 stringByTrimmingCharactersInSet NSString 方法与 whitespaceAndNewlineCharacterSet NSCharacterSet 一起使用:
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
【讨论】:
我写了一个快速宏来减少需要编写的代码量。
第 1 步:编辑应用的 PCH 文件,该文件应命名为 Project-Name-Prefix.pch
#define TRIM(string) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]
第 2 步:在您想要修剪字符串时享受编写更少的代码
NSLog(@"Output: %@ %@", TRIM(@"Hello "), TRIM(@"World "));
Output: Hello World
【讨论】: