대소문자를 구분하지 않는 비교 NSString
Objective C에서 대소문자를 구분하지 않는 비교에 대한 리소스를 가르쳐 주실 수 있습니까?와 동등한 방법은 없는 것 같습니다.str1.equalsIgnoreCase(str2)
if( [@"Some String" caseInsensitiveCompare:@"some string"] == NSOrderedSame ) {
// strings are equal except for possibly case
}
NSString *stringA;
NSString *stringB;
if (stringA && [stringA caseInsensitiveCompare:stringB] == NSOrderedSame) {
// match
}
주의: stringA &&
필수입니다.stringA
이nil
:
stringA = nil;
[stringA caseInsensitiveCompare:stringB] // return 0
그런 일이 있다NSOrderedSame
로도 정의됩니다.0
.
다음은 일반적인 함정입니다.
NSString *rank = [[NSUserDefaults standardUserDefaults] stringForKey:@"Rank"];
if ([rank caseInsensitiveCompare:@"MANAGER"] == NSOrderedSame) {
// what happens if "Rank" is not found in standardUserDefaults
}
대소문자를 구분하지 않는 것 이상의 제어를 필요로 하는 경우는, 다음과 같이 합니다.
[someString compare:otherString options:NSCaseInsensitiveSearch];
숫자 검색과 분음 불감각은 두 가지 편리한 옵션입니다.
비교하기 전에 항상 같은 케이스에 있는지 확인할 수 있습니다.
if ([[stringX uppercaseString] isEqualToString:[stringY uppercaseString]]) {
// They're equal
}
주요 이점은 0 문자열의 비교에 관해 matm에 의해 설명되는 잠재적인 문제를 피할 수 있다는 것입니다.다음 중 하나를 수행하기 전에 문자열이 0이 아님을 확인할 수 있습니다.compare:options:
(나처럼) 귀찮아서 비교마다 새로운 문자열을 작성하는데 드는 추가 비용을 무시할 수도 있습니다(비교를 1~2개만 하는 경우 최소).
새로운 방법 iOS 8
let string: NSString = "Café"
let substring: NSString = "É"
string.localizedCaseInsensitiveContainsString(substring) // true
- (NSComparisonResult)caseInsensitiveCompare:(NSString *)aString
이 방법을 사용해 보세요.
- (NSComparisonResult)caseInsensitiveCompare:(NSString *)aString
Jason Coco의 Swift에 대한 답변을 매우 게으른 사람들을 위해 변환:)
if ("Some String" .caseInsensitiveCompare("some string") == .OrderedSame)
{
// Strings are equal.
}
iPhone Contact App에서와 같이 접두사를 사용하여 확인합니다.
([string rangeOfString:prefixString options:NSCaseInsensitiveSearch].location == 0)
이 블로그는 나에게 유용했다.
신속한 대체 솔루션:
양쪽 대소문자를 작성하려면:
예:
if ("ABcd".uppercased() == "abcD".uppercased()){
}
또는 두 개의 소문자를 모두 만듭니다.
예:
if ("ABcd".lowercased() == "abcD".lowercased()){
}
MacOS 에서는, 간단하게 사용할 수 있습니다.-[NSString isCaseInsensitiveLike:]
이 값은 반환됩니다.BOOL
같은-isEqual:
.
if ([@"Test" isCaseInsensitiveLike: @"test"])
// Success
NSMutableArray *arrSearchData;
NSArray *data=[arrNearByData objectAtIndex:i];
NSString *strValue=[NSString stringWithFormat:@"%@", [data valueForKey:@"restName"]];
NSRange r = [strValue rangeOfString:key options:NSCaseInsensitiveSearch];
if(r.location != NSNotFound)
{
[arrSearchData addObject:data];
}
언급URL : https://stackoverflow.com/questions/2582306/case-insensitive-comparison-nsstring
'it-source' 카테고리의 다른 글
SQL 서버에서 group_concat을 사용하여 쿼리를 만드는 방법 (0) | 2023.04.11 |
---|---|
파일에서 #로 시작하는 모든 줄 삭제 (0) | 2023.04.11 |
같은 테이블의 한 열에서 다른 열로 데이터를 복사하려면 어떻게 해야 합니까? (0) | 2023.04.11 |
슬래시를 포함하는 변수를 sed에 전달하는 방법 (0) | 2023.04.11 |
PowerShell 파일 이름에서 경로 및 확장자를 제거하는 중 (0) | 2023.04.11 |