不区分大小写的NSString比较

时间:2010-12-20 10:47:10

标签: string cocoa nsstring case-sensitive

使用此代码,我可以比较字符串值。

[elementName isEqualToString: @"Response"]

但这比较敏感。有没有办法比较没有区分大小写的字符串?

4 个答案:

答案 0 :(得分:31)

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

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

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

答案 1 :(得分:14)

以下是比较字符串所需的代码,而不关心它是小写还是大写:

if ([elementName caseInsensitiveCompare:@"Response"]==NSOrderedSame)
{
    //  Your "elementName" variable IS "Response", "response", "reSPonse", etc
    //  
}

答案 2 :(得分:7)

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

[elementName isEqualToString: @"Response"];

如果你想要求不区分大小写,那么这里是代码:

您可以将可比较的字符串更改为lowerCase或大写,并可以比较为:

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

}

答案 3 :(得分:1)

{{1}}