Python字符串之间如何比较,Python字符串比较,远程版本号: "1.1.


远程版本号: "1.1.1"本地版本号: "2.0"

字符串保存,大家是怎么比较的呢?

>>> num = '@"1.1.1"'>>> num1 = '@"1.1.1"'>>> def run(s):    return s.strip('@"').split('.')>>> run(num1)['1', '1', '1']>>> run(num2)['2', '0']

首先你自己要有一个比较标准,比如数字升高版本号也偏大的话直接比较字符就好,用

String s1 = "2.2.1";String s2 = "1.2";String[] tmp1 = s1.split("\\.");String[] tmp2 = s2.split("\\.");

然后逐项比较应该也可以吧?不过要注意长度不同类似于2.2和2.2.1的这种比较应该就可以了。

JavaScript 实现. 原理就是按 . 分开, 然后按位比较呗.

/*  字符串比较  返回值:    0: 相等    1: 大于   -1: 小于*/function versionCompare( stra, strb ) {  var straArr = stra.split('.');  var strbArr = strb.split('.');  var maxLen = Math.max( straArr.length, strbArr.length );  var result, sa, sb;  for ( var i = 0; i  sb){      result = 1;    }    else if(sa 

我大Python怎么会没有库

In [1]: from distutils.version import LooseVersion                                                                                                                                                                                                                                                                                                                                                In [2]: LooseVersion('1.0.0')                                                                                                                                                                                  Out[2]: LooseVersion ('1.0.0')                                                                                                                                                                                  In [3]: LooseVersion('2.0')                                                                                                                                                                                Out[3]: LooseVersion ('2.0')                                                                                                                                                                                    In [4]: cmp(_2,_3)                                                                                                                                                     Out[4]: -1In [5]: LooseVersion('1.0b')                                                                                                                                                                       Out[5]: LooseVersion ('1.0b')In [7]: cmp(_2,_5)                                                                                                                                                                                  Out[7]: -1

SemVer for Objective-C
https://github.com/thisandagain/semver

也来贴一个Objective-C的:

@implementation NSString(Version)-(BOOL) isOlderVersionThan:(NSString*)otherVersion{return ([self compare:otherVersion options:NSNumericSearch] == NSOrderedAscending);}-(BOOL) isNewerVersionThan:(NSString*)otherVersion{return ([self compare:otherVersion options:NSNumericSearch] == NSOrderedDescending);}@end

这看来是OC最简单的方法了,用NSString的compare方法,不知道有人这样用过没?

编橙之家文章,

评论关闭