java主版本号_java比较版本号

java比较版本号,比如1.0.3和1.2.1相比较考虑到可以用String的compareTo()方法,代码如下:

public class MainClass {

public static void main(String[] args) {

String version1 = "1.0.3";

String version2 = "1.2.1";

int compareTo = version1.compareTo(version2);

System.out.println(compareTo);

}

}

输出结果是-2,也就是说version1小,这是正确的。

但是,这种情况仅限于小数点左右的数字位数相同,如果不相同,会出现一下情况:

public class MainClass {

public static void main(String[] args) {

String version1 = "5.2.3790.24123";

String version2 = "5.11.7883";

int compareTo = version1.compareTo(version2);

System.out.println(compareTo);

}

}

这是输出结果是1,表示version1大,显然是错误的。

所以,正常逻辑应该是以小数点分隔,对应位置上的数字比较大小,代码如下:

public class MainClass {

/**

* 比较版本号的大小,前者大则返回一个正数,后者大返回一个负数,相等则返回0

*/

public static void main(String[] args) {

String version1 = "5.2.3790.24123";

String version2 = "5.11.7883";

String[] split1 = version1.split("\\."); //以.分隔需要转义

String[] split2 = version2.split("\\.");

int length=Math.min(split1.length, split2.length);

int diff=0;

for(int i=0;i

diff = split1[i].length()-split2[i].length();

if(diff==0){ //位数相同时,比较大小

if(split1[i].compareTo(split2[i])>0){

System.out.println("1");

break;

}else if(split1[i].compareTo(split2[i])<0){

System.out.println("-1");

break;

}else if(i==length-1){

System.out.println(length==split1.length? -1 : 1);

}

}else if(diff !=0){ //位数不同时,直接输出

System.out.println(diff);

break;

}

}

}

}

Android4&period;0-4&period;4 加入实体按键振动支持的方法&lpar;java &plus; smali版本号&rpar;

有些手机比方泛泰A820L, 泛泰A890 A900 以及Nubia Z5S 和Z5S mini具有实体按键(这里所说的实体按键是相对于虚拟按键而言, 包括物理按键和触摸屏上多出来的触摸实体按键), ...

Java - Class版本号和UnsupportedClassVersionError

问题分析 Java是向下兼容的,每一个jdk版本都有对应的class版本号(major + minor version numbers):如果用低版本的jvm去加载高版本jdk编译的类,就会报错:ja ...

java实现版本号的比较

之前比较客户端版本号,一直用的是String.compareTo,知道出现bug之后才明白了它的不完善地方.它的比较方式是按照字符串的比较来执行的,所以它有不正确的地方.举个例子,之前客户端版本号为: ...

java -version 版本号与path中配置的不一致

Error: could not open `F:\e\java\jre7\lib\amd64\jvm.cfg' C:\Users\wl>java -versionError: could no ...

Ubuntu中配置Java环境变量时,出现command not found问题解决记录

百度出Ubuntu中配置Java环境变量时,在利用sudo gedit /etc/profile 对profile编辑后, 在terminal中输入 sudo source /etc/profile, ...

ubuntu 系统下搭建Java的环境

1.首先可以使用 java -version来查看自己是否已经搭建了java的环境,如果出现了java的版本号则表示java的环境已经搭建好了!否则则继续下面的步骤进行java环境的搭建 2.进入Or ...

触摸java常量池

java常量池是一个经久不衰的话题,也是面试官的最爱,题目花样百出,小菜早就对常量池有所耳闻,这次好好总结一下. 理论 小菜先拙劣的表达一下jvm虚拟内存分布:      程序计数器是jvm执行程序的 ...

Java的cmd配置(也即Java的JDK配置及相关常用命令)——找不到或无法加载主类 的解决方法

Java的cmd配置(也即Java的JDK配置及相关常用命令) ——找不到或无法加载主类  的解决方法 这段时间一直纠结于cmd下Java无法编译运行的问题.主要问题描述如下: javac 命令可以正 ...

随机推荐

Servlet-Cookie源码分析 源码环境:Tomcat8

最近在学习servlet的一些实现细节,阅读了Cookie的源码. Cookie本质上是服务器发送给客户端(主要是浏览器)的一个会话临时数据. 其源码注释文档的说明: Creates a cookie ...

XMLHelper 类

这个XMLHelper类中包括了XML文档的创建,文档节点和属性的读取,添加,修改,删除的方法功能的实现,有兴趣的朋友,可以进来看看,所有代码都在WebForm和WinForm中调试通过. 这是下面 ...

Leetcode Pasacl&&num;39&semi;sTriangle

对于Vector的用法,实在是知道的太少,算法思想比较简单,核心也就一行代码,但是实现错误就显示平时代码的不熟悉. Given numRows, generate the first numRows ...

IDEA控制台问题:At least one JAR was scanned for TLDs yet contained no TLD

参考连接: https://www.cnblogs.com/interdrp/p/7763040.html 1.调整Tomcat对应类的log级别 2.观察Tomcat日志打印信息 3.调整${tom ...

spark&period;Accumulator

scala> val accum = sc.accumulator() accum: org.apache.spark.Accumulator[Int] = scala> sc.paral ...

for语句联系 -小九九乘法表

public class a { /** * @param args */ public static void main(String[] args) { // TODO 自动生成的方法存根 int ...

我的Android进阶之旅------>Android中android&colon;windowSoftInputMode的用法

面试题:如何在显示某个Activity时立即弹出软键盘? 答案:在AndroidManifest.xml文件中设置标签的android:windowSoftInputM ...

DB11 TCP数据协议拆包接收主要方法

北京地标(DB11) 据接收器. /// /// DB11协议拆包器 /// public class SplictProtocol ...

C&plus;&plus;解决大数组问题

今天写一个C++小程序,竟然出现:"VS 未经处理的异常: 0xC00000FD: Stack overflow" 查了一下,普通数组变量是在堆栈中保存的,而堆栈空间有限,故出此错 ...

条款十五&colon; 让operator&equals;返回&ast;this的引用

c++程序员经常犯的一个错误是让operator=返回void,这好象没什么不合理的,但它妨碍了连续(链式)赋值操作,所以不要这样做. 一般情况下几乎总要遵循operator=输入和返回的都是类对象的 ...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值