我要确定来自用户输入 (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/