• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

对比APP版本更新中APP的版本号 返回最高版本


Recommended Posts

背景

检查应用程序的更新功能。每次app迭代准备上线时,在后台配置一个新的版本号并上传最新的apk,然后在App点击检查更新时返回最新的版本号。

版本号是非空字符串,仅包含数字和。人物。比如1.2.33,这个“.”字符不代表小数点,但用于分隔数字序列。

方案一

两两比较版本号,判断大小,取最高版本。

版本号的特点,假设版本号的段数不固定,可能是三段,也可能是四段。每段的位数也不固定。总之从高位到低位判断,编号大的版本号大。

包com . lingyejun . dating . chap 11 . toutiao;

导入Java . util . arrays;

导入Java . util.comparator;

导入Java . util . list;

导入Java . util . stream . collectors;

/**

* @Author:凌野君

* @Date: 2022/5/1

* @Describe:

* @由:修改

*/

公共类CompareVersionNumbers {

public static int compareVersions(字符串版本1,字符串版本2) {

string[]levels 1=version 1 . split(' \ \ . ');

string[]levels 2=version 2 . split(' \ \ . ');

int length=math . max(levels 1 . length,levels 2 . length);

for(int I=0;I长度;i ) {

整数v1=i级1.length?integer . parse int(levels 1): 0;

整数v2=i级2.length?integer . parse int(levels 2): 0;

//从高到低判断每段的版本号。

int compare=v1.compare to(v2);

//如果当前段的版本号相同,继续比较下一段。如果能判断出当前段的版本号,就直接返回。

如果(对比!=0) {

返回比较;

}

}

返回0;

}

公共静态void main(String[] args) {

字符串版本1=' 1 . 23 . 789 ';

字符串版本2=' 1 . 33 . 6678 ';

int compare=compareVersions(版本1,版本2);

System.out.println(比较);

字符串版本3=' 11 . 1 . 2 ';

ListString version list=arrays . aslist(版本1、版本3、版本2);

ListString sorted version list=version list . stream()。已排序(compareversionnumbers 33603360 compareversions)。已排序(Comparator.reverseOrder())。collect(collectors . to list());

system . out . println(sortedVersionList);

string max version=version list . stream()。已排序(compareversionnumbers 33603360 compareversions)。已排序(Comparator.reverseOrder())。findFirst()。orElse(空);

system . out . println(max version);

}

}

方案二

App在开发过程中会有自己的版本控制,每次包完都会标记包的版本号。还有一个版本号(数字型),随着版本号的增加而增加。我们可以在后台维护中维护版本号和版本代码。当我们选择最高版本时,我们直接从app _ version中检查数据库select max(version _ numer);可以直接拿到最大的版本。

如果这篇文章对你有帮助,请给“叶琳君”点个赞,感谢你的支持。

起点链接:https://www.cnblogs.com/lingyejun/p/16212161.html

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now