版本号带两个小数点的,如何比较大小?( 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(@"降序");
    }

 

 

 

 

posted @ 2017-09-14 14:28  落花伊人  阅读(1042)  评论(0编辑  收藏  举报