比较字符串
使用 isEqualToString:
比较字符串的相等性
==
运算符只测试对象标识并且不比较对象的逻辑值,因此不能使用它:
NSString *stringOne = @"example";
NSString *stringTwo = [stringOne mutableCopy];
BOOL objectsAreIdentical = (stringOne == stringTwo); // NO
BOOL stringsAreEqual = [stringOne isEqualToString:stringTwo]; // YES
表达式 (stringOne == stringTwo)
测试两个字符串的内存地址是否相同,这通常不是我们想要的。
如果字符串变量可以是 nil
,你也必须注意这个案例:
BOOL equalValues = stringOne == stringTwo || [stringOne isEqualToString:stringTwo];
当字符串具有相等的值或两者都是 nil
时,此条件返回 YES
。
要按字母顺序排列两个字符串,请使用 compare
:。
NSComparisonResult result = [firstString compare:secondString];
NSComparisonResult
可以是:
NSOrderedAscending
:第一个字符串出现在第二个字符串之前。NSOrderedSame
:字符串相等。NSOrderedDescending
:第二个字符串出现在第一个字符串之前。
要比较两个字符串的相等性,请使用 isEqualToString:
。
BOOL result = [firstString isEqualToString:secondString];
要与空字符串(@""
)进行比较,最好使用 length
。
BOOL result = string.length == 0;