in intellij-plugin-structure/structure-ide/src/main/java/com/jetbrains/plugin/structure/ide/VersionComparatorUtil.java [99:124]
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) {
n2 = repeatSymbol('0', n1len - n2len) + n2;
} else if (n2len > n1len) {
n1 = repeatSymbol('0', n2len - n1len) + n1;
}
return n1.compareTo(n2);
}