字符串比较和相等判断

来源:互联网 发布:开淘宝网店怎样进货 编辑:程序博客网 时间:2024/05/16 05:05

判断字符串是否相等

  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(@"第二个大");    }

这些都是比较常用的

0 0