String类型版本号比较

我总结了一下有两种方法:            

1.如果只有包含一个小数点的版本比较,可以直接将版本号转为double类型再比较;

2.版本号中包含有2个或以上的小数点,此时无法将其转换为浮点数了。


查阅jdk文档,发现String类型有有compareTo(String anoterString)的方法:

按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。按字典顺序将此String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数。如果按字典顺序此String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;compareTo 只在方法equals(Object) 返回 true 时才返回0

刚好可以用来判断版本号:

	public static void main(String[] args) {
		String appVersion="1.4.2";
		String softVersion="1.5.0";
		if(CompareIOSVersion(appVersion,softVersion)){
			System.out.println("版本"+appVersion+"大于等于版本"+softVersion);
		}else{
			System.out.println("版本"+appVersion+"小于版本"+softVersion);
		}
	}
	
	
	/**
	 * 判断ios版本
	 * @param softVersion1 app版本
	 * @param softVersion2  目标版本
	 * @param clientid
	 * @return boolean
	 */
	public static boolean CompareIOSVersion(String softVersion1,String softVersion2){
		
		if(softVersion1.compareTo(softVersion2)>=0){
			return true;
		}
		return false;
	}


你可能感兴趣的:(java,string,java)