Case-insensitive NSString comparison

前端 未结 4 1523
梦毁少年i
梦毁少年i 2021-02-05 19:35

Using this code I am able to compare string values.

[elementName isEqualToString: @\"Response\"]

But this compares case-sensitively. Is there a

相关标签:
4条回答
  • 2021-02-05 19:53

    Actually isEqualToString: works with case sensitive ability. as:

    [elementName isEqualToString: @"Response"];
    

    if you want to ask for case insensitive compare then here is the code:

    You can change both comparable string to lowerCase or uppercase, and can compare as:

    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
    
    }
    
    0 讨论(0)
  • 2021-02-05 19:53
    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");
    }
    
    0 讨论(0)
  • 2021-02-05 20:04

    There’s a caseInsensitiveCompare: method on NSString, why don’t you read the documentation? The method returns NSComparisonResult:

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

    …ah, sorry, just now I realized you are asking for case sensitive equality. (Why don’t I read the question? :-) The default isEqual: or isEqualToString: equality should already be case sensitive, what gives?

    0 讨论(0)
  • 2021-02-05 20:18

    Here's the code you would need to compare a string without caring about whether it's lowercase or uppercase:

    if ([elementName caseInsensitiveCompare:@"Response"]==NSOrderedSame)
    {
        //  Your "elementName" variable IS "Response", "response", "reSPonse", etc
        //  
    }
    
    0 讨论(0)
提交回复
热议问题