比较字符串
使用 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;