in ideaSupport/src/main/scala/org/jetbrains/sbtidea/download/VersionComparatorUtil.java [163:188]
private static int compareNumbers(String n1, String n2) {
// trim leading zeros
while(!n1.isEmpty() && !n2.isEmpty() && n1.charAt(0) == '0' && n2.charAt(0) == '0') {
n1 = n1.substring(1);
n2 = n2.substring(1);
}
// starts with zero => less
if (!n1.isEmpty() && n1.charAt(0) == '0') {
return -1;
} else if (!n2.isEmpty() && n2.charAt(0) == '0') {
return 1;
}
// compare as numbers
final int n1len = n1.length();
final int n2len = n2.length();
if (n1len > n2len) {
return 1;
} else if (n2len > n1len) {
return -1;
}
return n1.compareTo(n2);
}