Нечувствительное к регистру сравнение NSString - PullRequest
13 голосов
/ 20 декабря 2010

Используя этот код, я могу сравнивать строковые значения.

[elementName isEqualToString: @"Response"]

Но это сравнение чувствительно к регистру.Есть ли способ сравнить строку без учета регистра?

Ответы [ 4 ]

31 голосов
/ 20 декабря 2010

В NSString есть метод caseInsensitiveCompare:, почему вы не прочитали документацию ? Метод возвращает NSComparisonResult:

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

... ах, извините, только сейчас я понял, что вы просите равенство с учетом регистра равенства. (Почему я не читаю вопрос? :-) По умолчанию равенство isEqual: или isEqualToString: уже должно учитывать регистр, что дает?

14 голосов
/ 17 августа 2012

Вот код, который вам понадобится для сравнения строки, не заботясь о том, является ли она строчной или прописной:

if ([elementName caseInsensitiveCompare:@"Response"]==NSOrderedSame)
{
    //  Your "elementName" variable IS "Response", "response", "reSPonse", etc
    //  
}
7 голосов
/ 20 декабря 2010

На самом деле 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

}
1 голос
/ 11 мая 2015
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");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...