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

Cra*_*zer 74 string whitespace objective-c

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

Eim*_*tas 207

在NSString类中有方法.检查stringByTrimmingCharactersInSet:(NSCharacterSet *)set.你应该使用[NSCharacterSet whitespaceCharacterSet]as参数:

NSString *foo = @" untrimmed string ";
NSString *trimmed = [foo stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
Run Code Online (Sandbox Code Playgroud)

  • 这也将修剪尾随空格(这可能是也可能不是.)(原始问题要求从头开始删除它). (4认同)
  • `stringByTrimmingCharactersInSet` 只删除字符串开头和结尾的字符,而不是中间的字符。对于那些试图删除字符串中间空格的人,请使用`[yourString stringByReplacingOccurrencesOfString:@" " withString:@""]`。 (2认同)

Joh*_*ker 71

你可以使用stringByTrimmingCharactersInSet NSString方法和whitespaceAndNewlineCharacterSet NSCharacterSet:

NSString *testString = @"  Eek! There are leading and trailing spaces  ";
NSString *trimmedString = [testString stringByTrimmingCharactersInSet:
                             [NSCharacterSet whitespaceAndNewlineCharacterSet]];
Run Code Online (Sandbox Code Playgroud)

  • +1用于推荐whitespaceAndNewlineCharacterSet而不仅仅是whitespaceCharacterSet. (3认同)
  • -1 给 Apple 以重新定义空格以不包含换行符(他们应该创建一个新的 inlineWhitespaceCharacterSet) (2认同)

小智 7

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

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

#define TRIM(string) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]
Run Code Online (Sandbox Code Playgroud)

第2步:当你想修剪一个字符串时,享受更少的代码编写

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

Output: Hello World
Run Code Online (Sandbox Code Playgroud)


Rya*_*ner 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);
Run Code Online (Sandbox Code Playgroud)

产量

mystring    123   , length 9
mystring 123   , length 6
Run Code Online (Sandbox Code Playgroud)