@author Hellohao @version 1.0 @date 2022/7/18 9:49
| 6 | * @date 2022/7/18 9:49 |
| 7 | */ |
| 8 | public 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 | } |
nothing calls this directly
no outgoing calls
no test coverage detected