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