比較標(biāo)準(zhǔn)
// num1 和 num2 是兩個字符串
[num1 compare:num2]
返回值
typedef enum _NSComparisonResult{
NSOrderedAscending =-1,
NSOrderedSame,
NSOrderedDescending} NSComparisonResult;
如果 num1 > num2 ,結(jié)果就是降序
如果 num1 = num2 ,結(jié)果就是相等
如果 num1 < num2 ,結(jié)果就是升序
常用比較方法介紹
[value compare:(NSString *****)];
[value compare:(NSString *****)options : (NSStringCompareOptions)];
[value compare:(NSString *****)options :(NSStringCompareOptions) range:(NSRange)];
compare:(NSString *)
具實(shí)事例
NSString *value = @"1234567890";
傳入一個需要比較的字符串稿存。
例如 [value compare:@"1234567890"]蝶桶,返回 NSOrderedSame。
比較枚舉參數(shù)
options:(NSStringCompareOptions)
傳入 NSStringCompareOptions 枚舉的值
enum
{
NSCaseInsensitiveSearch
=1,//不區(qū)分大小寫比較
NSLiteralSearch = 2,//區(qū)分大小寫比較
NSBackwardsSearch = 4,//從字符串末尾開始搜索
NSAnchoredSearch = 8,//搜索限制范圍的字符串
NSNumbericSearch = 64//按照字符串里的數(shù)字為依據(jù)筋栋,算出順序逃糟。例如Foo2.txt < Foo7.txt <Foo25.txt
**//以下定義高于 mac os 10.5 或者高于 iphone2.0 可用
**
,
NSDiacriticInsensitiveSearch = 128,//忽略 "-" 符號的比較
NSWidthInsensitiveSearch= 256,//忽略字符串的長度,比較出結(jié)果
NSForcedOrderingSearch = 512//忽略不區(qū)分大小寫比較的選項(xiàng),并強(qiáng)制返回 NSOrderedAscending 或者NSOrderedDescending
**//以下定義高于 iphone 3.2可用
**
,
NSRegularExpressionSearch = 1024//只能應(yīng)用于 rangeOfString:...,stringByReplacingOccurrencesOfString:...和replaceOccurrencesOfString:... 方法旁瘫。使用通用兼容的比較方法,如果設(shè)置此項(xiàng)琼蚯,可以去掉NSCaseInsensitiveSearch 和 NSAnchoredSearch
}
range:(NSRange)
比較字符串的范圍
結(jié)構(gòu)變量:
? ? ? ?location
: 需要比較的字串起始位置(以0為起始)
? ? ? ?length
: 需要比較的字串長度
比較結(jié)果:
**typedef enum _NSComparisonResult{ **
**NSOrderedAscending =-1, ** // < 升序
NSOrderedSame, ** // = 等于
NSOrderedDescending ** // >降序} NSComparisonResult;
例子:版本號比較
NSString num1 = @"5.2.0";
NSStringnum2 = @"5.3.0";
if ([num1compare:num2 options:NSNumericSearch] == NSOrderedDescending)
? ? ? ? { ULog(@"%@ is bigger",num1); }
else
? ? ? ?{ ULog(@"%@ is bigger",num2); }
解釋:NSOrderedDescending是降序酬凳,如果numb1>numb2用這個函數(shù)相比較那么就等于降序。