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

Posted

技术标签:

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

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

【问题讨论】:

稍微搜索一下也无妨。看看What's the best way to trim whitespace from a string in Cocoa Touch? 【参考方案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

【讨论】:

以上是关于在 Objective-C 中从字符串中删除空格的主要内容,如果未能解决你的问题,请参考以下文章

从 SQL Server 中的字符串中删除所有空格

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

删除所有空格并将多行合并为 SQL 中的单行

从C中删除字符串中的空格?

string怎么去掉字符串里面的所有空格

无法在 Xcode 控制台中从 Objective-C 记录 Swift Singletons