java实现版本比较
- package com.hzxc.chess.server.util;
- /**
- * Created by hdwang on 2018/3/19.
- * 版本比较工具类
- */
- public class VersionCompareUtil {
- /**
- * 比较版本大小
- *
- * 说明:支n位基础版本号+1位子版本号
- * 示例:1.0.2>1.0.1 , 1.0.1.1>1.0.1
- *
- * @param version1 版本1
- * @param version2 版本2
- * @return 0:相同 1:version1大于version2 -1:version1小于version2
- */
- public static int compareVersion(String version1, String version2) {
- if (version1.equals(version2)) {
- return 0; //版本相同
- }
- String[] v1Array = version1.split("\\.");
- String[] v2Array = version2.split("\\.");
- int v1Len = v1Array.length;
- int v2Len = v2Array.length;
- int baseLen = 0; //基础版本号位数(取长度小的)
- if(v1Len > v2Len){
- baseLen = v2Len;
- }else{
- baseLen = v1Len;
- }
- for(int i=0;i<baseLen;i++){ //基础版本号比较
- if(v1Array[i].equals(v2Array[i])){ //同位版本号相同
- continue; //比较下一位
- }else{
- return Integer.parseInt(v1Array[i])>Integer.parseInt(v2Array[i]) ? 1 : -1;
- }
- }
- //基础版本相同,再比较子版本号
- if(v1Len != v2Len){
- return v1Len > v2Len ? 1:-1;
- }else {
- //基础版本相同,无子版本号
- return 0;
- }
- }
- public static void main(String[] args) {
- String v1 = "1.0.1";
- String v2 = "1.0.2";
- String v2_1 = "1.0.2.1";
- String v2_2 = "1.0.2.2";
- String v3 = "1.0.3";
- System.out.println("v1>v1:"+compareVersion(v1,v1));
- System.out.println("v1>v2:"+compareVersion(v1,v2));
- System.out.println("v2>v1:"+compareVersion(v2,v1));
- System.out.println("v2_1>v1:"+compareVersion(v2_1,v1));
- System.out.println("v2_1>v2:"+compareVersion(v2_1,v2));
- System.out.println("v2_2>v2_1:"+compareVersion(v2_2,v2_1));
- System.out.println("v3>v2:"+compareVersion(v3,v2));
- System.out.println("v3>v2_2:"+compareVersion(v3,v2_2));
- }
- }
java实现版本比较的更多相关文章
- java的版本区别、下载、配置
参考:http://blog.csdn.net/liujun13579/article/details/7684604 java的版本区别 常用的 java 程序分为 Java SE.Java EE ...
- 解决linux下javac -version和java -version版本显示不一致
解决linux下javac -version和java -version版本显示不一致 [javascript] view plaincopy [root@localhost usr]# $JAVA_ ...
- asdm不能登录问题;浏览器必须是ie,不能是chrome或者firefox;java的版本,尤其是安全等级和例外需要调整
asdm不能登录问题:浏览器必须是ie,不能是chrome或者firefox;java的版本,尤其是安全等级和例外需要调整
- java-01 JAVA三大版本比较&JDK、JRE、JVM 的关系
1. java三大版本比较 1.1 java SE javaSE 是java标准版的简称,其定位是个人计算机应用(应用原生界面比较ugly) 全称:Java Platform Standard Edi ...
- Atitit.ati dwr的原理and设计 attilax 总结 java php 版本
Atitit.ati dwr的原理and设计 attilax 总结 java php 版本 1. dwr的优点相对于ajax来说..1 2. DWR工作原理1 3. Dwr的架构2 4. 自定义dwr ...
- Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结
Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结 1.1. Java的编年史2 ...
- 切換 java compiler 版本
有些程式在執行時會顯示需要較新的 java jre 版本, 若系統裝有兩個 java jre 可以使用下列指令切協版本, sudo update-alternatives --config java ...
- java三大版本解析
JAVA三大版本代表着JAVA技术的三个应用领域:JAVASE.JAVAME.JAVAEE. JAVA以前很长一段时间被称为JAVA2,所以现在很多人习惯称为J2SE.J2ME.J2EE,它们表示的含 ...
- Java各版本新特性总结
Java或者说JDK的更新一般分为两部分内容:Java语言.JVM(C.C++编写),但通常情况下都不会单独发布,因为新的语言特性需要特定的JVM支持才行.下面我总结了从古至今Java各版本的新 ...
- Java各版本新增特性, Since Java 8
Java各版本新增特性, Since Java 8 作者:Grey 原文地址: Github 语雀 博客园 Java 8 Reactor of Java 这一章来自于<Spring in Act ...
随机推荐
- Android Studio com.android.support:percent 导入错误 - 转
看第一行代码(第二版的)书,讲了一个关于PercentFrameLayout和PercentRelativeLayout的部分,书上在build.gradle中导入了com.android.suppo ...
- 20155223 Exp9 Web安全基础实践
20155223 Exp9 Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 攻击原理:SQL注入即是指web应用程序对用户输入数据的合法性没有判断,攻击者可以在web应用程序中事先定 ...
- Python基础(字符串和编码)
字符编码 我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特 ...
- Hadoop日记Day7---HDFS的WED端口
HDFS 对外提供了可供访问的http server,开放了很多端口,下面介绍常用的几个端口(http://hadoop:……). 一.50070 端口,查看NameNode 状态,如图1.1所示. ...
- Flutter - 给App增加启动屏幕(Splash Screen)并且设置背景颜色
先看一下效果图,启动图最好设置为png格式的透明图,以防图片填充不满的时候背景图会非常的煞白(Flutter 默认背景色是白色). 打开android\app\src\main\res\drawabl ...
- vs2013 std::sort 分析
由于之前在debug模式下发现stl的sort简直慢到不能忍,所以自己写了一个sgi的sort,后来发现在release模式下,vs自带的sort快的不行,就研究了下. 这里有些和sgi-stl相通的 ...
- Word或者WPS里证件照的背景底色和像素调整
证件照的背景底色调整和像素调整 关于证件照的背景底色自行调整,比较方便的方法是用Word或者WPS来进行调整,当然也可以利用两者相结合的方法来进行调整,下面来系统的说一下这两种方式.此 ...
- java实验报告三
实验三 敏捷开发与XP实践 一.实验内容 1. XP基础 2. XP核心实践 3. 相关工具 二.实验步骤 (一)敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法应用到软件的开发.运营和维护上 ...
- linux 常用命令-变量命令
想要的结果,有时候我们想使用上一句命令的执行结果,当然可以通过鼠标去复制粘贴,但是这样既不库又效率低,所以想能不能通过快捷键获取上一句命令的值执行结果呢,答案是不能,后来想如果能把执行结果存入变量那不 ...
- Hadoop 5 Hbase 遇到的问题
hbase伪分布式配置完成后: 在bin/hbase shell 进行create操作时出现:Can't get master address from ZooKeeper; znode data = ...