Java對比APP版本號大小

    /**
	 * 比較版本號的大小,前者大則返回一個正數,後者大返回一個負數,相等則返回0
	 * @param version1
	 * @param version2
	 */
	public static int compareVersion(String version1, String version2) throws Exception {
	    if (version1 == null || version2 == null) {
	        throw new Exception("compareVersion error:illegal params.");
	    }
	    String[] versionArray1 = version1.split("\\.");//注意此處爲正則匹配,不能用.;
	    String[] versionArray2 = version2.split("\\.");
	    int idx = 0;
	    int minLength = Math.min(versionArray1.length, versionArray2.length);//取最小長度值
	    int diff = 0;
	    while (idx < minLength
	            && (diff = versionArray1[idx].length() - versionArray2[idx].length()) == 0//先比較長度
	            && (diff = versionArray1[idx].compareTo(versionArray2[idx])) == 0) {//再比較字符
	    	++idx;
	    }
	    //如果已經分出大小,則直接返回,如果未分出大小,則再比較位數,有子版本的爲大;
	    diff = (diff != 0) ? diff : versionArray1.length - versionArray2.length;
	    return diff;
	}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章