【问题标题】:Remove whitespace from string in Objective-C在 Objective-C 中从字符串中删除空格
【发布时间】:2011-01-10 10:17:15
【问题描述】:

我有几个字符串。有些在开头有空格,有些则没有。我想检查一个字符串是否以空格开头,如果是则删除它。

【问题讨论】:

标签: objective-c string whitespace


【解决方案1】:

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

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

【讨论】:

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

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

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

【讨论】:

  • +1 用于推荐 whitespaceAndNewlineCharacterSet 而不仅仅是 whitespaceCharacterSet。
  • -1 to Apple 重新定义空白以不包含换行符(他们应该创建一个新的 inlineWhitespaceCharacterSet 代替)
  • 这也将修剪尾随空格(这可能是可取的,也可能不是可取的。(原始问题要求从头开始删除它)。
【解决方案3】:

这将只删除前导空格。

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

【讨论】:

  • 瑞恩,感谢您回答最初的问题!!!
【解决方案4】:

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

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

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

第 2 步:在您想要修剪字符串时享受编写更少的代码

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

Output: Hello World

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-16
    • 1970-01-01
    • 1970-01-01
    • 2017-11-20
    相关资源
    最近更新 更多