您的位置:首页 > 其它

字符串比较和相等判断

2015-09-27 21:24 344 查看

判断字符串是否相等

首先不能用== 来判断,因为==判断的存储在这个字符串的对象的值,这样很容易出错,那么我们用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(@"相等");
    }


若觉得这些参数不好记,可以用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;
    }


看一下忽略大小写的判断

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


这些都是比较常用的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: