字符串的判断

时间:2023-01-04 17:11:26
// 1.判断字符串是否为空
        NSString *tmp1 = @"";
        // 有可能没有定义字符串nil 有可能定义个空字符串@“” 所以也要看字符串长度是不是等于0
        if (tmp1 == nil || tmp1.length == 0) {
            NSLog(@"字符串为空");
        }
// 2.判断字符串是否以指定的内容开头
        NSString *tmp2 = @"www.bk.com";
        BOOL prefix = [tmp2 hasPrefix:@"www"];
        NSLog(@"%@",prefix ? @"YES" : @"NO");
// 3.判断字符串是否以指定的内容结尾
        // 开发中常用来判断文件格式 txt avi doc rmvb 等等
        NSString *tmp3 = @"www.bk.txt";
        BOOL suffix = [tmp3 hasSuffix:@"txt"];
        NSLog(@"%@",suffix ? @"YES" : @"NO");
// 4.比较两个字符串是否相等
        NSString *str = @"abc";
        NSString *str1 = @"abc";
        // ==比较的是字符串地址
        if (str == str1) {
            NSLog(@"相等");
        }

        // 实际开发中一定要用NSString提供的方法isEqualToString
        // isEqualToString 首先判断两个字符串的指针地址是否相同 相同直接返回YES 
        // 不同的话就取出两个字符串中的每一个字符进行比较
        NSString *str2 = [NSString stringWithFormat:@"%@",@"abc"];
        BOOL isEqual1 = [str isEqualToString:str2];
        NSLog(@"isEqualToString %@",isEqual1 ? @"YES" : @"NO");

        BOOL isEqual2 = [str myIsEqual:str2];
        NSLog(@"myIsEqual %@",isEqual2 ? @"YES" : @"NO");

        // 5.compare是isEqual得增强版本
        NSComparisonResult compare = [str compare:str1];
        NSLog(@"%ld",compare);
        switch (compare) {
            case NSOrderedAscending:
            NSLog(@"NSOrderedAscending");
            break;

            case NSOrderedSame:
            NSLog(@"相等");
            break;

            case NSOrderedDescending:
            NSLog(@"NSOrderedDescending");
            break;

            default:
            break;
        }
    }