2010-12-20 114 views

回答

30

NSString上有caseInsensitiveCompare:方法,你为什么不读the documentation?该方法返回NSComparisonResult

enum { 
    NSOrderedAscending = -1, 
    NSOrderedSame, 
    NSOrderedDescending 
}; 
typedef NSInteger NSComparisonResult; 

...啊,不好意思,刚才我意识到,你所要求的区分大小写平等。 (为什么我不读这个问题?:-)默认isEqual:isEqualToString:平等应该已经是区分大小写,什么给?

+0

+1 - 这么多方便的方法,花费很少时间阅读类参考文档。 :-) – 2010-12-20 10:53:51

+0

我相信总有更好的方式说“你为什么不阅读文档?”,谢谢你的答案btw。 – ersentekin 2018-03-05 16:10:56

6

实际上isEqualToString:适用于区分大小写的能力。 为:

[elementName isEqualToString: @"Response"]; 

,如果你要问的不区分大小写的比较,那么这里是代码:

您可以更改媲美字符串大写或小写,并且可以作为比较:

NSString *tempString = @"Response"; 
NSString *string1 = [elementName lowercaseString]; 
NSString *string2 = [tempString lowercaseString]; 

//The same code changes both strings in lowerCase. 
//Now You Can compare 

if([string1 isEqualToString:string2]) 
{ 

//Type your code here 

} 
14

下面是您需要比较字符串的代码,而不必关心它是小写字母还是大写字母:

if ([elementName caseInsensitiveCompare:@"Response"]==NSOrderedSame) 
{ 
    // Your "elementName" variable IS "Response", "response", "reSPonse", etc 
    // 
} 
1
NSString *string1 = @"stringABC"; 
NSString *string2 = @"STRINGDEF"; 
NSComparisonResult result = [string1 caseInsensitiveCompare:string2]; 

if (result == NSOrderedAscending) { 
    NSLog(@"string1 comes before string2"); 
} else if (result == NSOrderedSame) { 
    NSLog(@"We're comparing the same string"); 
} else if (result == NSOrderedDescending) { 
    NSLog(@"string2 comes before string1"); 
}