java主版本号_java比较版本号

2023-11-11

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=输入和返回的都是类对象的 ...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java主版本号_java比较版本号 的相关文章

随机推荐

  • Python的关键字和builtins模块

    关键字 from keyword import kwlist print kwlist 于是得到了长度为33的list False None True and as assert break class continue def del e
  • java计算1-100之间的素数和(详细版)

    一 素数概念 除了一和自己本身外不能被其他数整除 并且素数大于1 二 解题思路 1 首先定义一层外层循环 表示1 100之间的每一个数 2 定义一个内层循环 范围大于1 小于外层循环 相当于被外层循环一个一个整除 看是否能除尽 例如外层循环
  • websocket介绍

    偶然在知乎上看到一篇回帖 瞬间觉得之前看的那么多资料都不及这一篇回帖让我对 websocket 的认识深刻有木有 所以转到我博客里 分享一下 比较喜欢看这种博客 读起来很轻松 不枯燥 没有布道师的阵仗 纯粹为分享 废话这么多了 最后再赞一个
  • matlab的narx的使用,matlab NARX做时间序列预测的问题

    NARX 神经网络做一个时间序列预测的时候碰到一些问题 1 目标 用input 178 2 预测output 178 1 数据和程序附后 2 问题 1 训练不多几次就会出现的时候 Maximum MU reached 从而训练停止 这个该如
  • 在Asp.net页面中实现数据饼图

    ASP NET之所以能够在客户端浏览器中形成各种数据图片 是因为在ASP NET中提供了绘图功能 具体的作法是先在服务器端创建一个Bitmap实例 然后利用ASP NET中提供的绘图功能 按照要生成的图片的模样 进行绘制 最后把绘制好的实例
  • 城市内涝地埋式积水监测系统解决方案

    一 方案背景 近 20 年来 我国城市化进程加快 城市地区由于人口密集 物资财产密度不断加大等特点 高强度暴雨积水形成的洪涝灾害对城市化地区产生的威肋和带来的狠失愈来愈大 由于城市的不断扩建 使工业区 商业区和居民区等不渗水的面积越来越大
  • MySQL8.0.28安装教程

    MySQL8 0 28安装教程 一 下载并配置安装文件 1 进入官网下载mysql安装包 2 解压安装包 如下图所示 3 添加配置文件my ini 新建一个文本文件 将下列内容复制到文件中 并将文件另存为 ini格式 mysqld 设置33
  • Oracle 存储过程动态sql 中出现 日期格式 中文及符号等的处理 多重for循环

    最近针对一个多维度业务逻辑写了一个存储过程 遇到的问题留存以下 1 声明的变量 长度不够导致 这个当时客户不提供debug权限 无法查到问题 可通过 plsql 文件 命令窗口 exec 存储过程名称 可以大致拿到错误原因 写一点测试一点
  • unity3d Animator,Animation动画相关笔记

    Animation是一个动画效果 比如一个攻击动画 奔跑动画 AnimatorController是多个animation的集合 并且能够控制在多个animation之间切换展示 因此 双击一个AnimatorControllers类能看到
  • 华为路由交换设备配置综合实验(实验六合一)

    华为路由交换设备配置综合实验 单臂路由 三层交换 动静路由 VRRP路由 DHCP中继 捆绑Etrunk链路 实验六合一 实验拓扑图 目的 实现全网各个PC之间的互联互通 全部实验脚本如下 以下脚本直接复制即可使用 一 实现右部DHCP中继
  • CocosCreator之KUOKUO教你如何用瓦片地图生成碰撞赛车道

    本次引擎v2 0 10 目标 瓦片地图生成碰撞赛车道 过程 首先 我们需要撸一个瓦片地图 很简单的地图 分两层 墙和地面 然后 在CocosCreator中直接拖进层级管理器就行 然后你就会发现层自动形成节点并挂载组件了 然后给wall和c
  • 如何使用Python进行数据分析

    Python是一种通用编程语言 也被广泛应用于数据科学领域 Python的强大之处在于其庞大的生态系统和可扩展性 在本篇博文中 我们将讨论如何使用Python进行数据分析 1 安装Python及其库 首先 您需要安装Python并配置其环境
  • MYSQL删除表的记录后如何使ID从1开始

    转载于https www cnblogs com no7dw archive 2010 04 16 1713240 html YSQL删除表的记录后如何使ID从1开始 MYSQL删除表的记录后如何使ID从1开始 http hi baidu
  • bp神经网络算法的优缺点,bp神经网络缺点及克服

    前馈神经网络 BP神经网络 卷积神经网络的区别与联系 一 计算方法不同1 前馈神经网络 一种最简单的神经网络 各神经元分层排列 每个神经元只与前一层的神经元相连 接收前一层的输出 并输出给下一层 各层间没有反馈 2 BP神经网络 是一种按照
  • Python探索性数据分析(EDA)统计数据和建模

    探索性数据分析 EDA 在统计学中 探索性数据分析是一种分析数据集以总结其主要特征的方法 通常使用统计图形和其他数据可视化方法 可以使用或不使用统计模型 但主要是 EDA 用于查看数据可以告诉我们超出正式建模的内容 从而对比传统的假设检验
  • 面试官:你了解 QPS、TPS、RT、吞吐量 这些高并发性能指标吗?

    一 QPS 每秒查询 QPS Queries Per Second意思是 每秒查询率 是一台服务器每秒能够相应的查询次数 是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准 互联网中 作为域名系统服务器的机器的性能经常用每秒查询率
  • 上传图片!MultipartFile接收

    图片上传 记录一下调用图片接口上传 调用接口为OBS上传 自己封装过后的接口参数为 一个类型为String 为OBS桶下文件名称 一个为MultipartFile类型 需要调用的实现 生成本地二维码 本地保存 存储地址为项目目录下 之后调用
  • 监测本地文件变化,上传新文件至FTP(附python代码)

    通过循环不断的监测本地文件变化 一旦发现新的文件 就上传新文件至FTP coding utf 8 filezilla客户端 14148 admin coding utf 8 import os from ftplib import FTP
  • HBuilderX真机调试检测不到手机问题 IQQO9

    HBuilderX真机调试检测不到手机问题 1 开启usb调试功能 2 本人是iqqo 9 开启usb调试也检测不到 按下面操作进行
  • java主版本号_java比较版本号

    java比较版本号 比如1 0 3和1 2 1相比较考虑到可以用String的compareTo 方法 代码如下 public class MainClass public static void main String args Stri