比较两个版本字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比较两个版本字符串相关的知识,希望对你有一定的参考价值。
/* * compareVersions(@"10.4", @"10.3") returns NSOrderedDescending (1) * compareVersions(@"10.5", @"10.5.0") returns NSOrderedSame (0) * compareVersions(@"10.4 Build 8L127", @"10.4 Build 8P135") returns NSOrderedAscending (-1) */ { int i; // Break version into fields (separated by '.') NSMutableArray *leftFields = [[NSMutableArray alloc] initWithArray:[leftVersion componentsSeparatedByString:@"."]]; NSMutableArray *rightFields = [[NSMutableArray alloc] initWithArray:[rightVersion componentsSeparatedByString:@"."]]; // Implict ".0" in case version doesn't have the same number of '.' if ([leftFields count] < [rightFields count]) { while ([leftFields count] != [rightFields count]) { [leftFields addObject:@"0"]; } } else if ([leftFields count] > [rightFields count]) { while ([leftFields count] != [rightFields count]) { [rightFields addObject:@"0"]; } } // Do a numeric comparison on each field for(i = 0; i < [leftFields count]; i++) { NSComparisonResult result = [[leftFields objectAtIndex:i] compare:[rightFields objectAtIndex:i] options:NSNumericSearch]; if (result != NSOrderedSame) { [leftFields release]; [rightFields release]; return result; } } [leftFields release]; [rightFields release]; return NSOrderedSame; }
以上是关于比较两个版本字符串的主要内容,如果未能解决你的问题,请参考以下文章