如何在Objective-C中测试NSString是否为空?
当前回答
我检查了一个空字符串使用以下代码:
//Check if we have any search terms in the search dictionary.
if( (strMyString.text==(id) [NSNull null] || [strMyString.text length]==0
|| strMyString.text isEqual:@"")) {
[AlertView showAlert:@"Please enter a valid string"];
}
其他回答
因此,除了检查字符串长度小于1的基本概念之外,深入考虑上下文也很重要。 人类、计算机或其他语言可能对空字符串有不同的定义,在这些相同的语言中,额外的上下文可能会进一步改变含义。
假设空字符串意味着“在当前上下文中不包含任何重要字符的字符串”。
这可能意味着在视觉上,颜色和背景颜色在带属性的字符串中是相同的。有效的空。
这可能意味着没有有意义的字符。所有的点、破折号或下划线都可能被认为是空的。 此外,空有意义的有效字符可能意味着一个字符串没有读者能理解的字符。 它们可以是定义为对读者毫无意义的语言或字符集中的字符。我们可以稍微不同地定义它,即字符串在给定语言中不构成已知单词。
我们可以说空是一个函数的负空间百分比的字形呈现。
即使是没有一般视觉表示的不可打印字符序列也不是真正的空字符。我想到了控制字符。特别是低ASCII范围(我很惊讶没有人提到这些,因为它们包含许多系统,而不是空白,因为它们通常没有字形和可视指标)。然而,字符串长度不是零。
结论。 长度本身并不是唯一的衡量标准。 上下文集成员也非常重要。
字符集隶属度是一种非常重要的常用附加度量。 有意义的序列也是相当常见的。(想想SETI、加密或验证码) 还存在其他更抽象的上下文集。
因此,在假设字符串仅根据长度或空格为空之前请仔细考虑。
//Different validations:
NSString * inputStr = @"Hey ";
//Check length
[inputStr length]
//Coming from server, check if its NSNull
[inputStr isEqual:[NSNull null]] ? nil : inputStr
//For validation in allowed character set
-(BOOL)validateString:(NSString*)inputStr
{
BOOL isValid = NO;
if(!([inputStr length]>0))
{
return isValid;
}
NSMutableCharacterSet *allowedSet = [NSMutableCharacterSet characterSetWithCharactersInString:@".-"];
[allowedSet formUnionWithCharacterSet:[NSCharacterSet decimalDigitCharacterSet]];
if ([inputStr rangeOfCharacterFromSet:[allowedSet invertedSet]].location == NSNotFound)
{
// contains only decimal set and '-' and '.'
}
else
{
// invalid
isValid = NO;
}
return isValid;
}
看看这个:
if ([yourString isEqualToString:@""])
{
NsLog(@"Blank String");
}
Or
if ([yourString length] == 0)
{
NsLog(@"Blank String");
}
希望这能有所帮助。
if (string.length == 0) stringIsEmpty;
你最好使用这个类别:
@implementation NSString (Empty)
- (BOOL) isWhitespace{
return ([[self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]length] == 0);
}
@end
推荐文章
- CFNetwork SSLHandshake iOS 9失败
- 请求失败:不可接受的内容类型:文本/html使用AFNetworking 2.0
- 缺少推荐的图标文件-该包不包含iPhone / iPod Touch的应用程序图标,像素为“120x120”,png格式
- 以编程方式创建segue
- 在Objective-C中@synchronized如何锁定/解锁?
- Xcode构建失败“架构x86_64未定义的符号”
- 如何使用Xcode创建。ipa文件?
- 动态改变UILabel的字体大小
- registerForRemoteNotificationTypes: iOS 8.0及以上版本不支持
- 新的自动引用计数机制是如何工作的?
- 如何测试对象在Objective-C中的类?
- 在iPhone上确定用户是否启用了推送通知
- 是否有可能禁用浮动头在UITableView与UITableViewStylePlain?
- 从Cocoa应用程序执行一个终端命令
- 错误ITMS-9000:“冗余二进制文件上传。火车1.0版本已经有一个二进制版本上传。