使用Java代碼來(lái)比較Android客戶端版本號(hào)
關(guān)鍵點(diǎn)
為什么不能使用String.compareTo方法來(lái)比較客戶端版本號(hào)?
舉個(gè)例子,之前客戶端版本號(hào)為:9.9.9,而服務(wù)器端最新的客戶端版本號(hào)為:10.0.1,雖然10.0.1明顯高于9.9.9,但是按照compareTo方法,這個(gè)9.9.9是大于10.0.1的,導(dǎo)致客戶端版本號(hào)比較錯(cuò)誤。
Java代碼實(shí)現(xiàn)
扯了一些,最后還是要show一下代碼的,以下是我的客戶端版本號(hào)比較代碼,歡迎吐槽。
public static int compareVersion(String version1, String version2) { if (version1.equals(version2)) { return 0; } String[] version1Array = version1.split("\\."); String[] version2Array = version2.split("\\."); int index = 0; int minLen = Math.min(version1Array.length, version2Array.length); int diff = 0; while (index < minLen && (diff = Integer.parseInt(version1Array[index]) - Integer.parseInt(version2Array[index])) == 0) { index ++; } if (diff == 0) { for (int i = index; i < version1Array.length; i ++) { if (Integer.parseInt(version1Array[i]) > 0) { return 1; } } for (int i = index; i < version2Array.length; i ++) { if (Integer.parseInt(version2Array[i]) > 0) { return -1; } } return 0; } else { return diff > 0 ? 1 : -1; } }
- Android Studio 修改應(yīng)用包名實(shí)例詳解
- java批量采集豌豆莢網(wǎng)站Android應(yīng)用圖標(biāo)和包名
- Android5.1系統(tǒng)通過(guò)包名給應(yīng)用開(kāi)放系統(tǒng)權(quán)限的方法
- Android編程獲取APP應(yīng)用程序基本信息輔助類【APP名稱、包名、圖標(biāo),版本號(hào)等】
- Android獲取應(yīng)用版本號(hào)與版本名稱
- Android獲取手機(jī)型號(hào)/系統(tǒng)版本號(hào)/App版本號(hào)等信息實(shí)例講解
- Android獲取當(dāng)前手機(jī)網(wǎng)絡(luò)類型(2g、3g、4g、wifi)以及手機(jī)型號(hào)、版本號(hào)代碼
- Android通過(guò)aapt命令獲取apk詳細(xì)信息(包括:文件包名,版本號(hào),SDK等信息)
- Android 獲取未安裝的APK圖標(biāo)、版本號(hào)、包名等信息方法
- Android編程實(shí)現(xiàn)應(yīng)用獲取包名、版本號(hào)、權(quán)限等信息的方法
相關(guān)文章
Spring事務(wù)執(zhí)行流程及如何創(chuàng)建事務(wù)
這篇文章主要介紹了Spring事務(wù)執(zhí)行流程及如何創(chuàng)建事務(wù),幫助大家更好的理解和學(xué)習(xí)使用spring框架,感興趣的朋友可以了解下2021-03-03Java調(diào)用計(jì)算機(jī)攝像頭拍照實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Java調(diào)用計(jì)算機(jī)攝像頭拍照實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05超級(jí)好用的輕量級(jí)JSON處理命令jq(最新推薦)
jq是一個(gè)輕量級(jí)的命令行工具,讓你可以非常方便地處理JSON數(shù)據(jù),如切分、過(guò)濾、映射、轉(zhuǎn)化等,就像sed、awk、grep文本處理三劍客一樣,這篇文章主要介紹了超級(jí)好用的輕量級(jí)JSON處理命令jq,需要的朋友可以參考下2023-01-01java基于quasar實(shí)現(xiàn)協(xié)程池的方法示例
本文主要介紹了java基于quasar實(shí)現(xiàn)協(xié)程池的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧<BR>2022-06-06Kafka日志清理實(shí)現(xiàn)詳細(xì)過(guò)程講解
這篇文章主要為大家介紹了Kafka日志清理實(shí)現(xiàn)詳細(xì)過(guò)程講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05一文掌握SpringSecurity?BCrypt密碼加密和解密
BCrypt就是一款加密工具,可以比較方便地實(shí)現(xiàn)數(shù)據(jù)的加密工作。也可以簡(jiǎn)單理解為它內(nèi)部自己實(shí)現(xiàn)了隨機(jī)加鹽處理,這篇文章主要介紹了SpringSecurity?BCrypt密碼加密和解密,一文學(xué)會(huì)使用BCryptPasswordEncoder的方法,需要的朋友可以參考下2023-04-04