OC中compare字符串比较及其参数理解

本文详细介绍了如何使用Objective-C中的compare方法比较字符串值与ASCII码值,并提供了三种比较条件:不分大小写、区分大小写和数值比较,以及代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、compare在要比较的字符串中,依次取出对应的数组元素,按ascii码值比较,如果ascii值能比较出结果了,就不往后比较。

 二、在进行比较时,可以添加如下条件进行比较:

 NSCaseInsensitiveSearch = 1,      不区分大小写比较

 NSLiteralSearch = 2, Exact character-by-character equivalence     区分大小写比较,默认的

 NSNumericSearch = 64,

 Numbers within strings are compared using numeric value, that is, Foo2.txt < Foo7.txt < Foo25.txt; only applies to compare methods, not find      这个条件根据文档注释意思是,字符中的相应下表的数是用元素的值进行比较的,很多同学都会误解为比较的是每个字符串的个数,其实不然,这三种条件都是建立在ascii码值基础上的比较。

 如果有多个比较条件,加一个|然后加比较条件

 简单的字符串值比较,我们可以用isEqualToString来完成,因为它比较的也是值

三、代码分析

 

#import <Foundation/Foundation.h>

int main()

{

    @autoreleasepool {

//        NSString *str=@"You are the besta";

//        NSString *str1=@"you are the best";

        //当条件为NSNumericSearch|NSCaseInsensitiveSearch时运行结果

//        2016-01-27 22:02:38.192 OC5[1084:49546] 降序

//        Program ended with exit code: 0

        

        NSString *str=@"You are the besta";

        NSString *str1=@"you are the best";

        //当条件为NSNumericSearch时运行结果,如果像理解的比较的是字符串的个数,此处打印应为降序,但打印结果如下,所以可知,这个条件在ascii码值基础上进行比较

//        2016-01-27 22:10:17.662 OC5[1108:50918] 升序

//        Program ended with exit code: 0

        //(NSStringCompareOptions)比较时可以添加条件

      NSComparisonResult result = [str compare:str1 options:NSNumericSearch];//比较的是字符串的值,如果有多个比较条件,加一个|然后加比较条件

        switch (result) {

            case NSOrderedAscending:

                NSLog(@"升序");

                break;

            case NSOrderedSame:

                NSLog(@"相同");

                break;

            case NSOrderedDescending:

                NSLog(@"降序");

                break;

            default:

                break;

        }

    }

    return0;

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值