MCPcopy Create free account
hub / github.com/Hello-hao/Tbed / MyVersion

Class MyVersion

src/main/java/cn/hellohao/utils/MyVersion.java:8–50  ·  view source on GitHub ↗

@author Hellohao @version 1.0 @date 2022/7/18 9:49

Source from the content-addressed store, hash-verified

6 * @date 2022/7/18 9:49
7 */
8public class MyVersion {
9 /**
10 * 版本号比较
11 *
12 * @param v1
13 * @param v2
14 * @return 0代表相等,1代表左边大,-1代表右边大
15 * Utils.compareVersion("1.0.358_20180820090554","1.0.358_20180820090553")=1
16 */
17 public static int compareVersion(String v1, String v2) {
18 if (v1.equals(v2)) {
19 return 0;
20 }
21 String[] version1Array = v1.split("[._]");
22 String[] version2Array = v2.split("[._]");
23 int index = 0;
24 int minLen = Math.min(version1Array.length, version2Array.length);
25 long diff = 0;
26
27 while (index < minLen
28 && (diff = Long.parseLong(version1Array[index])
29 - Long.parseLong(version2Array[index])) == 0) {
30 index++;
31 }
32 if (diff == 0) {
33 for (int i = index; i < version1Array.length; i++) {
34 if (Long.parseLong(version1Array[i]) > 0) {
35 return 1;
36 }
37 }
38
39 for (int i = index; i < version2Array.length; i++) {
40 if (Long.parseLong(version2Array[i]) > 0) {
41 return -1;
42 }
43 }
44 return 0;
45 } else {
46 return diff > 0 ? 1 : -1;
47 }
48 }
49
50}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected