objective-c - 在 Cocoa Touch 中从字符串中删除空格的最佳方法是什么?

标签 objective-c string cocoa-touch whitespace

我要确定来自用户输入 (UITextField) 的字符串值是否为“空白”(如果它不是 nil)。检查 [textField.text isEqualToString:""] 是否还不够,因为我想避免任何空白/空白输入(比如一些空格字符)。

似乎确实有迹象表明我的特定问题有一个好的解决方案 in this StOv post .

基本上它是这样的,但我怀疑必须(或应该)有更好的方法:

NSString *strResult;
NSScanner* scanner = [NSScanner scannerWithString:textField.text];
BOOL hasValidChars = [scanner scanUpToCharactersFromSet:[NSCharacterSet whitespaceAndNewlineCharacterSet] 
                                             intoString:&strResult];

// if hasValidChars == YES, we've got nonwhite space chars collected into strResult

这显然只适用于我的特定情况,即便如此,如果第一个字符是空格但后面是我想要的数据,它也会失败。所以,我意识到我有点被 Ruby 宠坏了,但在 Cocoa 中一定有一个经过验证的真实习惯用法来修剪字符串。

啊啊,答案已经出来了,我很抱歉:

NSString 的 -stringByTrimmingCharactersInSet: 会这样做:

Returns a new string made by removing from both ends of the receiver characters contained in a given character set.

我仍然很想知道是否有人有其他/首选的方法来做到这一点。

最佳答案

您正在使用 whitespaceAndNewlineCharacterSet,很好。但是为什么不使用 stringByTrimmingCharactersInSet 而不是使用 scanUpToCharactersFromSet?像这样的……

strResult = [strResult stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

编辑:直到我发布这个之后才意识到您已经找到了 stringByTrimmingCharactersInSet。

关于objective-c - 在 Cocoa Touch 中从字符串中删除空格的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/474270/

相关文章:

objective-c - 如何将 libpng 与 OpenGL 一起用于 2D 游戏?

带有 fmdb 的 ios 6 sqlite 无法在 iPhone 上运行

iphone - 在 _one_ ASIHTTPRequest 中流式传输多个文件

ios - UITableViewCell 自定义附件按钮

ios - 更改方向后如何更改选择器 View 的位置

objective-c - 强制开发人员遵守 Objective-C 中的协议(protocol)是一种好习惯吗?

c++ - libcurl 的标准字符串问题 - C++

C# 字符串 4096 限制?

c++ - VS2012 中不允许使用 {...} 进行 vector <字符串> 初始化?

iphone - 如何在 iPad 上运行 iPod 应用程序