2010-12-20 3 views

답변

30

NSStringcaseInsensitiveCompare: 방법이 있습니다. the documentation을 읽지 않으시겠습니까? 방법은 NSComparisonResult 반환

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

이 ... 아, 미안, 지금 당신이 대소 문자를 구분 평등을 요구하고 깨달았다. (질문을 읽지 않는 이유는 무엇입니까? :-) 기본값 인 isEqual: 또는 isEqualToString:은 대소 문자를 구분해야합니다.

+0

+1 - 매우 많은 편리한 방법으로 클래스 참조 문서를 읽는 데 너무 적은 시간이 걸렸습니다. :-) –

+0

"항상 설명서를 읽지 않는 이유는 무엇입니까?"라고 대답하는 것이 더 좋은 방법이라고 생각합니다. 답변을 주셔서 감사합니다. btw. – ersentekin

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"); 
}