字符串比较和相等判断

判断字符串是否相等

  1. 首先不能用== 来判断,因为==判断的存储在这个字符串的对象的值,这样很容易出错,那么我们用isEqualToString来进行判断
int main(int argc, const char * argv[])
{

    NSString *str = @"jack";
    NSString *str1 = [NSString stringWithFormat:@"jack"];
   BOOL res =  [str isEqualToString:str1];
    if (res == YES)
    {
        NSLog(@"相等");
    }
    else
    {
        NSLog(@"不相等");
    }

    return 0;
}

字符串大小的比较

 NSString *str = @"jack";
    NSString *str1 = @"yack";

    NSComparisonResult res =   [str compare:str1];
    if (res == NSOrderedAscending )
    {
        NSLog(@"第2个大");
    }else if (res == NSOrderedDescending)
    {
        NSLog(@"第1个大");
    }else
    {
        NSLog(@"相等");
    }
  1. 若觉得这些参数不好记,可以用int来接受
   NSString *str1 = @"jack";
    NSString *str2 = @"jack";
   int res =  [str1 compare:str2];
    switch (res)
    {
        case -1:
            NSLog(@"小于。。。");
            break;
        case 0:
            NSLog(@"等于。。。");
            break;
        case 1:
            NSLog(@"大于。。。");
            break;
    }
  1. 看一下忽略大小写的判断
  NSString *str = @"jack";
    NSString *str1 = @"JAck";
   int res =  [str compare:str1 options:NSCaseInsensitiveSearch];
    if (res > 0)
    {
        NSLog(@"第一个大");
    }else if(res == 0)
    {
        NSLog(@"相等");
    }else
    {
        NSLog(@"第二个大");
    }

后面的参数NSCaseInsensitiveSearch就是忽略大小写的判断

完全匹配 :NSLiteralSearch

    NSString *str1 = @"jack";
    NSString *str2 = @"Jack";
  int res =  [str1 compare:str2 options:NSLiteralSearch];
    if (res > 0)
    {
        NSLog(@"第一个大");
    }else if(res == 0)
    {
        NSLog(@"相等");
    }else
    {
        NSLog(@"第二个大");
    }

相同格式下,字符串中数字的大小判断

    NSString *str1 = @"jpg003";
    NSString *str2 = @"jpg005";
   int res =  [str1 compare:str2 options:NSNumericSearch];
    if (res > 0)
    {
        NSLog(@"第一个大");
    }else if(res == 0)
    {
        NSLog(@"相等");
    }else
    {
        NSLog(@"第二个大");
    }

这些都是比较常用的

你可能感兴趣的:(字符串,对象,NSString)