Во-первых, вам нужно убедиться, что Java знает, что они являются числами - на данный момент они просто Strings
, а строки сортируются лексографически (то есть в «алфавитном порядке»).
Мой подход заключается в создании небольшого класса, который реализует Comparable
, который будет автоматически работать с логикой сортировки и сравнения. Возможно, что-то вроде этого:
public class VersionNumber implements Comparable<VersionNumber> {
public final int major;
public final int minor;
public final int patch;
// Constructor etc. elided
public int compareTo(VersionNumber other) {
if (other.major != major) return major - other.major;
if (other.minor != minor) return minor - other.minor;
return patch - other.patch;
}
}
Анализ строки для создания экземпляров этого класса оставлен читателю в качестве упражнения!