Objective-C语言比较字符串

示例

使用以下方法比较字符串是否相等 isEqualToString:

该==运营商只是为测试对象标识和不比较对象的逻辑值,所以不能使用:

NSString *stringOne = @"example";
NSString *stringTwo = [stringOne mutableCopy];

BOOL objectsAreIdentical = (stringOne == stringTwo);          // 没有
BOOL stringsAreEqual = [stringOne isEqualToString:stringTwo]; // 是

该表达式(stringOne == stringTwo)测试以查看两个字符串的内存地址是否相同,这通常不是我们想要的。

如果可以使用字符串变量,则nil还必须注意这种情况:

BOOL equalValues = stringOne == stringTwo || [stringOne isEqualToString:stringTwo];

YES当字符串的值相等或两者都为时,返回此条件nil。

要按字母顺序排列两个字符串,请使用compare:。

NSComparisonResult result = [firstString compare:secondString];

NSComparisonResult 可:

  • NSOrderedAscending:第一个字符串在第二个字符串之前。

  • NSOrderedSame:字符串相等。

  • NSOrderedDescending:第二个字符串在第一个字符串之前。

要比较两个字符串是否相等,请使用isEqualToString:。

BOOL result = [firstString isEqualToString:secondString];

要与空字符串(@"")比较,最好使用length。

BOOL result =string.length== 0;