如何在Objective-C中测试NSString是否为空?
当前回答
你可以检查[string length] == 0。这将检查它是否是一个有效的空字符串(@"")以及它是否为nil,因为在nil上调用length也将返回0。
其他回答
另一个选项是用isEqualToString检查它是否等于@"":如下所示:
if ([myString isEqualToString:@""]) {
NSLog(@"myString IS empty!");
} else {
NSLog(@"myString IS NOT empty, it is: %@", myString);
}
if( [txtMobile.text length] == 0 )
{
[Utility showAlertWithTitleAndMessage: AMLocalizedString(@"Invalid Mobile No",nil) message: AMLocalizedString(@"Enter valid Mobile Number",nil)];
}
斯威夫特版本
即使这是一个Objective C问题,我需要在Swift中使用NSString,所以我也会在这里包括一个答案。
let myNSString: NSString = ""
if myNSString.length == 0 {
print("String is empty.")
}
或者NSString是可选的:
var myOptionalNSString: NSString? = nil
if myOptionalNSString == nil || myOptionalNSString!.length == 0 {
print("String is empty.")
}
// or alternatively...
if let myString = myOptionalNSString {
if myString.length != 0 {
print("String is not empty.")
}
}
正常的Swift String版本是
let myString: String = ""
if myString.isEmpty {
print("String is empty.")
}
请参见:检查Swift中的空字符串?
if (string.length == 0) stringIsEmpty;
因此,除了检查字符串长度小于1的基本概念之外,深入考虑上下文也很重要。 人类、计算机或其他语言可能对空字符串有不同的定义,在这些相同的语言中,额外的上下文可能会进一步改变含义。
假设空字符串意味着“在当前上下文中不包含任何重要字符的字符串”。
这可能意味着在视觉上,颜色和背景颜色在带属性的字符串中是相同的。有效的空。
这可能意味着没有有意义的字符。所有的点、破折号或下划线都可能被认为是空的。 此外,空有意义的有效字符可能意味着一个字符串没有读者能理解的字符。 它们可以是定义为对读者毫无意义的语言或字符集中的字符。我们可以稍微不同地定义它,即字符串在给定语言中不构成已知单词。
我们可以说空是一个函数的负空间百分比的字形呈现。
即使是没有一般视觉表示的不可打印字符序列也不是真正的空字符。我想到了控制字符。特别是低ASCII范围(我很惊讶没有人提到这些,因为它们包含许多系统,而不是空白,因为它们通常没有字形和可视指标)。然而,字符串长度不是零。
结论。 长度本身并不是唯一的衡量标准。 上下文集成员也非常重要。
字符集隶属度是一种非常重要的常用附加度量。 有意义的序列也是相当常见的。(想想SETI、加密或验证码) 还存在其他更抽象的上下文集。
因此,在假设字符串仅根据长度或空格为空之前请仔细考虑。
推荐文章
- UICollectionView中的单元格间距
- 我如何在我的iOS应用程序中每n分钟得到一个后台位置更新?
- 如何使用iOS创建GUID/UUID
- 禁用所呈现视图控制器的交互式撤销
- 点击按钮时如何打开手机设置?
- 如何使用UIVisualEffectView来模糊图像?
- 如何修复UITableView分隔符在iOS 7?
- 故事板中的自定义单元格行高设置没有响应
- 如何改变时间和时区在iPhone模拟器?
- 在Swift中使用自定义消息抛出错误/异常的最简单方法?
- 如何在Swift中获得唯一的设备ID ?
- 我如何知道何时UITableView完成了ReloadData?
- 复制文本到剪贴板与iOS
- 在Swift中根据字符串计算UILabel的大小
- 如何调用手势点击在UIView编程在迅速