public class VersionStringComparator extends Object implements Comparator<String>
For dotted decimals, comparison is as you'd expect: 0.1 is before 0.2 is before 1.0 is before 2.0. This works for any number of dots.
More complicated version numbers are compared by splitting the version strings
into components using the DELIMITER_PATTERN and comparing each
component in order. The first difference found when comparing components
left-to-right is returned.
Two numeric components (containing only digits) are compared as integers. A
numeric component comes after any non-numeric one. Two non-numeric components
are ordered by String.compareToIgnoreCase(String).
| Modifier and Type | Field and Description |
|---|---|
static String |
COMPONENT_PATTERN |
static String |
DELIMITER_PATTERN |
static Pattern |
SNAPSHOT_PATTERN |
static String |
VALID_VERSION_PATTERN |
| Constructor and Description |
|---|
VersionStringComparator() |
| Modifier and Type | Method and Description |
|---|---|
int |
compare(String version1,
String version2)
Compares two version strings using the algorithm described above.
|
static boolean |
isSnapshotVersion(String version) |
static boolean |
isValidVersionString(String version) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcomparing, comparing, comparingDouble, comparingInt, comparingLong, equals, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLongpublic static final String DELIMITER_PATTERN
public static final String COMPONENT_PATTERN
public static final String VALID_VERSION_PATTERN
public static final Pattern SNAPSHOT_PATTERN
public static boolean isValidVersionString(String version)
public static boolean isSnapshotVersion(String version)
public int compare(String version1, String version2)
compare in interface Comparator<String>IllegalArgumentException - if either argument does not match VALID_VERSION_PATTERN.isValidVersionString(String)Copyright © 2019 Atlassian. All rights reserved.