The list of methods to do Version Compare are organized into topic(s).
int
versionCompare(final String current, final String remote) Compares two version strings component-wise.
final String[] curComp = current.trim().split("\\.|-|\\s+");
final String[] remComp = remote.trim().split("\\.|-|\\s+");
int result = 0;
for (int i = 0; (result == 0) && (i < Math.min(curComp.length, remComp.length)); i++) {
try {
result = Integer.parseInt(curComp[i]) - Integer.parseInt(remComp[i]);
} catch (final NumberFormatException e) {
result = curComp[i].compareToIgnoreCase(remComp[i]);
...
int
versionCompare(int... args) version Compare
if (args.length < 2 || args.length % 2 != 0)
throw new IllegalArgumentException("args must have a positive, even number of elements");
int i = 0;
String v1 = String.valueOf(args[i++]);
for (; i < args.length / 2; i++)
v1 += "." + args[i];
String v2 = String.valueOf(args[i++]);
for (; i < args.length; i++)
...
int
versionCompare(String firstVersionString, String secondVersionString) Compares two version strings.
if (firstVersionString.indexOf('-') != -1) {
firstVersionString = firstVersionString.substring(0, firstVersionString.indexOf('-'));
if (secondVersionString.indexOf('-') != -1) {
secondVersionString = secondVersionString.substring(0, secondVersionString.indexOf('-'));
String[] firstVersion = firstVersionString.split("\\.");
String[] secondVersion = secondVersionString.split("\\.");
...
int
versionCompare(String fromVersion, String toVersion) Compare fromVersion and toVersion.
String[] fromArr = fromVersion.split("\\.");
String[] toArr = toVersion.split("\\.");
int fromFirst = Integer.parseInt(fromArr[0]);
int fromMiddle = Integer.parseInt(fromArr[1]);
int fromEnd = Integer.parseInt(fromArr[2]);
int toFirst = Integer.parseInt(toArr[0]);
int toMiddle = Integer.parseInt(toArr[1]);
int toEnd = Integer.parseInt(toArr[2]);
...
int
versionCompare(String str1, String str2) version Compare
String[] vals1 = str1.split("\\.");
String[] vals2 = str2.split("\\.");
int i = 0;
while (i < vals1.length && i < vals2.length && vals1[i].equals(vals2[i])) {
i++;
if (i < vals1.length && i < vals2.length) {
int diff = Integer.valueOf(vals1[i]).compareTo(Integer.valueOf(vals2[i]));
...
int
versionCompare(String str1, String str2) Compares two version strings.
String[] vals1 = str1.split("\\.");
String[] vals2 = str2.split("\\.");
int i = 0;
while (i < vals1.length && i < vals2.length && vals1[i].equals(vals2[i])) {
i++;
if (i < vals1.length && i < vals2.length) {
String v = vals1[i];
...
boolean
versionCompare(String userVersion, String supportVersion) version Compare
boolean isSupport = false;
try {
if (userVersion != null) {
String[] userVerArr = userVersion.split("\\.");
String[] supportVerArr = supportVersion.split("\\.");
int userVerNum = 0, supportVerNum = 0;
if (userVerArr.length > 2) {
userVerNum = Integer.valueOf(userVerArr[0]) * 100000 + Integer.valueOf(userVerArr[1]) * 100
...
long
versionCompare(String ver1, String ver2) Compare two given versions.
if (invalidVersion(ver1) || invalidVersion(ver2)) {
throw new IllegalArgumentException("illegal format of version: " + ver1 + " or " + ver2);
return normalizeVersion(ver1) - normalizeVersion(ver2);