字符串比較說明

NSString 比較字符串,我介紹一些經常使用的方法:html

NSString *value = @"1234567890";iphone

比較的方法:函數

[value compare:(NSString *)];spa

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

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

傳入的參數:ip

compare:(NSString *)ci

傳入一個須要比較的字符串。字符串

例如 [value compare:@"1234567890"],返回 NSOrderedSame。string

 

options:(NSStringCompareOptions)

傳入 NSStringCompareOptions 枚舉的值

enum{

    NSCaseInsensitiveSearch = 1,//不區分大小寫比較

    NSLiteralSearch = 2,//區分大小寫比較

    NSBackwardsSearch = 4,//從字符串末尾開始搜索

    NSAnchoredSearch = 8,//搜索限制範圍的字符串

    NSNumbericSearch = 64//按照字符串裏的數字爲依據,算出順序。例如 Foo2.txt < Foo7.txt < Foo25.txt

//如下定義高於 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

}

range:(NSRange)

比較字符串的範圍

 結構變量:

location: 須要比較的字串起始位置(以0爲起始)

length: 須要比較的字串長度

 

返回值:

typedef enum _NSComparisonResult {
     NSOrderedAscending = -1,    // < 升序
     NSOrderedSame,              // = 等於
     NSOrderedDescending   // > 降序
} NSComparisonResult;

例子:版本號比較

    NSString *num1 = @"5.2.0";
    NSString *num2 = @"5.3.0";
 
    if ([num1 compare:num2 options:NSNumericSearch] == NSOrderedDescending)
    {
        ULog(@"%@ is bigger",num1);
    }else
    {
        ULog(@"%@ is bigger",num2);
    }

解釋:
NSOrderedDescending是降序,若是numb1>numb2用這個函數相比較那麼就等於降序。

轉自:http://blog.sina.com.cn/s/blog_916e0cff0102uyz1.html

相關文章
相關標籤/搜索