java實現判定新舊版本號


廢話不多說,直接上代碼

 1 /**
 2      * 判斷是否為最新版本方法 將版本號根據.切分為int數組 比較
 3      *
 4      * @param localVersion  本地版本號
 5      * @param onlineVersion 線上版本號
 6      * @return 是否為新版本
 7      * @throws IllegalArgumentException argument may not be null !
 8      */
 9     public static boolean isNewVersion(String localVersion, String onlineVersion) {
10         if (localVersion == null || onlineVersion == null) {
11             throw new IllegalArgumentException("argument may not be null !");
12         }
13         if (localVersion.equals(onlineVersion)) {
14             return false;
15         }
16         //過濾非數字和非字符點
17         String[] localArray = localVersion.replaceAll("[^0-9.]", "").split("[.]");
18         String[] onlineArray = onlineVersion.replaceAll("[^0-9.]", "").split("[.]");
19         int length = localArray.length < onlineArray.length ? localArray.length : onlineArray.length;//取長度較短的版本
20         //以長度較短的版本為基點,逐個判斷大小
21         for (int i = 0; i < length; i++) {
22             if (Integer.parseInt(onlineArray[i]) > Integer.parseInt(localArray[i])) {
23                 return true;
24             } else if (Integer.parseInt(onlineArray[i]) < Integer.parseInt(localArray[i])) {
25                 return false;
26             }
27             // 相等 比較下一組值
28         }
29         //長度較長的判斷
30         //比較最后差異組數值
31         if (localArray.length < onlineArray.length) {//舊版本長度短於新版本
32             return Integer.parseInt(onlineArray[onlineArray.length - 1]) > 0;
33         } else if (localArray.length > onlineArray.length) {//舊版本長度長於新版本
34             return Integer.parseInt(onlineArray[onlineArray.length - 1]) < 0;//舊版本
35         }
36         return false;
37     }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM