版本号带两个小数点的,如何比较大小?( NSStringCompareOptions )

Posted 落花伊人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了版本号带两个小数点的,如何比较大小?( NSStringCompareOptions )相关的知识,希望对你有一定的参考价值。

例如 

1、

NSString *value = @"123AAAAAAA";

[value compare:@"123AAAAAAA"],返回 NSOrderedSame。


2、不区分大小写

 

NSString *returnstr = @"aaaa";

NSString *compare:MACstring = @"AaAa";

int result =[returnstr compare:MACstring options:NSCaseInsensitiveSearch| =NSNumericSearch];

返回结果:result == 0;

 

typedef NS_ENUM(NSInteger, NSComparisonResult)

 {NSOrderedAscending = -1L,  升序

  NSOrderedSame,         相等

  NSOrderedDescending     降序

};


options:(NSStringCompareOptions)

传入 NSStringCompareOptions 枚举的值

 

typedef NS_OPTIONS(NSUInteger, NSStringCompareOptions) {

   

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

    NSLiteralSearch = 2,//区分大小写比较

    NSBackwardsSearch = 4,//从字符串末尾开始搜索

    NSAnchoredSearch = 8,//搜索限制范围的字符串

    NSNumbericSearch = 64//按照字符串里的数字为依据,算出顺序。例如 11aas2fgdfg < 11aas3fgdfg < 11aas8fgdfg

//以下定义高于 mac os 10.5 或者高于 iphone 2.0 可用

    ,

    NSDiacriticInsensitiveSearch = 128,//忽略 "-" 符号的比较

    NSWidthInsensitiveSearch = 256,//忽略字符串的长度,比较出结果

    NSForcedOrderingSearch = 512//忽略不区分大小写比较的选项,并强制返回 NSOrderedAscending 或者 NSOrderedDescending

//以下定义高于 iphone 3.2 可用

    ,

    NSRegularExpressionSearch = 1024//只能应用于 rangeOfString:..., stringByReplacingOccurrencesOfString:...和 replaceOccurrencesOfString:... 方法。使用通用兼容的比较方法,如果设置此项,可以去掉 NSCaseInsensitiveSearch 和 NSAnchoredSearch

 

};

比较的方法:

[value compare:(NSString *)];

[value compare:(NSString *) options:(NSStringCompareOptions)];

[value compare:(NSString *) options:(NSStringCompareOptions) range:(NSRange)];

传入一个需要比较的字符串。

 

 

 

  NSString * str1 = @"1.1.20160422";
    NSString * str2 = @"1.1.20160421";
    
    /* NSOrderedAscending = -1  升序
     * NSOrderedSame = 0        相等
     * NSOrderedDescending      降序
     */
    
    NSLog(@"compare = %ld", [str1 compare:str2 options:NSCaseInsensitiveSearch]);
    
    NSInteger comparingResults = [str1 compare:str2 options:NSCaseInsensitiveSearch];
    
    if ( comparingResults == NSOrderedAscending ) {
        NSLog(@"升序");
    }else if (comparingResults == NSOrderedSame ){
        NSLog(@"相等");
    }else{
        NSLog(@"降序");
    }

 

 

 

 

以上是关于版本号带两个小数点的,如何比较大小?( NSStringCompareOptions )的主要内容,如果未能解决你的问题,请参考以下文章

c语言,double类型数值比较为啥出错,如何比较两个double类型大小?

js 比较两个版本的大小 比如 4.5.1和 4.6.2

如何使用Shell判断版本号的大小

leetcode165. 比较版本号

易语言时间比较大小(先后)

165 Compare Version Numbers 比较版本号