VersionComparison.java 1.51 KB
package com.ectrip.cyt.version;

/**
 * @author jigo 版本判断
 */
public class VersionComparison {
	/**
	 * @param str1
	 *            前版本号
	 * @param str2
	 *            后版本号
	 * @return str1<str2 可以升级,其他都不可以
	 */
	public static boolean comparison(String str1, String str2) {
		if (str1 == null || str2 == null) {
			return false;
		}
		try {
			String[] strArray = str1.split("\\.");
			String[] strArray2 = str2.split("\\.");
			if (strArray.length > strArray2.length) {
				for (int i = 0; i < strArray2.length; i++) {
					int isGT = Integer.parseInt(strArray2[i])
							- Integer.parseInt(strArray[i]);
					if (isGT > 0) {
						return true;
					} else if (isGT < 0) {
						return false;
					}
				}
				return false;
			} else if (strArray.length == strArray2.length) {
				for (int i = 0; i < strArray2.length; i++) {
					if (Integer.parseInt(strArray[i]) < Integer
							.parseInt(strArray2[i])) {
						return true;
					} else if (Integer.parseInt(strArray[i]) > Integer
							.parseInt(strArray2[i])) {
						return false;
					}
				}
			} else if (strArray.length < strArray2.length) {
				for (int i = 0; i < strArray.length; i++) {
					int isGT = Integer.parseInt(strArray2[i])
							- Integer.parseInt(strArray[i]);
					if (isGT > 0) {
						return true;
					} else if (isGT < 0) {
						return false;
					}
				}
				return true;
			}
		} catch (NumberFormatException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return false;
	}
}