Для сравнения номеров версий вы можете сделать что-то вроде этого:
// compare two strings, e.g. "5.8.0" with "1.88.3"
public int compare(String v1, String v2) {
String s1 = normalisedVersion(v1); // normalized to " 5 8 0"
String s2 = normalisedVersion(v2); // normalized to " 1 88 3"
return s1.compareTo(s2); // returns -1 for lower, 0 equal and 1 for greater
}
public String normalisedVersion(String version) {
return normalisedVersion(version, ".", 4);
}
public String normalisedVersion(String version, String sep, int maxWidth) {
String[] split = Pattern.compile(sep, Pattern.LITERAL).split(version);
StringBuilder sb = new StringBuilder();
for (String s : split) {
sb.append(String.format("%" + maxWidth + 's', s));
}
return sb.toString();
}