我想确定用户输入(UITextField)中的字符串值是否为"空白"(如果它不是nil).检查是否[textField.text isEqualToString:""]
还不够,因为我想避免任何空白/空白输入(比如说几个空格字符).
在这篇StOv帖子中,似乎有一个很好的解决方案可以解决我的特定问题.
基本上它是这样的,但我怀疑必须(或应该)是一个更好的方法:
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中的字符串.
Aaaand答案已经在那里了,我道歉:
NSString -stringByTrimmingCharactersInSet:
会这样做:
返回通过从接收器的两端移除给定字符集中包含的字符而生成的新字符串.
我仍然很想知道是否有人有其他/首选方式这样做.
你正在使用whitespaceAndNewlineCharacterSet,不错.但是为什么不使用stringByTrimmingCharactersInSet而不是使用scanUpToCharactersFromSet?像这样......
strResult = [strResult stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
编辑:没有意识到你已经发现了stringByTrimmingCharactersInSet,直到我发布这个.
你在寻找什么
[string stringByReplacingOccurrencesOfString:@" " withString:@""]
.
删除字符串中间的空格不称为"修剪".
根据定义修剪从边缘开始.