當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 領(lǐng)域應(yīng)用 > 微信營銷 > 微信營銷軟件
Java實(shí)現(xiàn)比較版本號
涉及到客戶端的系統(tǒng)中經(jīng)常需要用到比較版本號的功能,但是比較版本號又不能完全按照字符串比較的方式去用compareTo之類的方法;
這就需要我們總結(jié)版本號的通用規(guī)則,設(shè)計(jì)一個比較算法并封裝成通用方法來使用:
通常版本號如:1.3.20.8,6.82.20160101,8.5a/8.5c等;
通用規(guī)則就是,先將版本字符串按照點(diǎn)號分割,然后主版本與主版本比較、此版本與此版本比較,如此按序一級一級往后比較,直到有分出大??;
值得注意的是,很多比較版本號的方法都先將字符串轉(zhuǎn)換成int或者double類型,這樣做未必通用,因?yàn)榭赡芎凶帜福?.5c這樣的版本號;
通用的方式依然是將分割后的字符串當(dāng)做字符串來比較,不過,比較字符串之前,先比較位數(shù);
比較版本號的方法示例:
[java]view plaincopy
/**
*比較版本號的大小,前者大則返回一個正數(shù),后者大返回一個負(fù)數(shù),相等則返回0
*@paramversion1
*@paramversion2
*@return
*/
publicstaticintcompareVersion(Stringversion1,Stringversion2)throwsException{
if(version1==null||version2==null){
thrownewException("compareVersionerror:illegalparams.");
}
String[]versionArray1=version1.split(".");//注意此處為正則匹配,不能用".";
String[]versionArray2=version2.split(".");
intidx=0;
intminLength=Math.min(versionArray1.length,versionArray2.length);//取最小長度值
intdiff=0;
while(idx<minLength
&&(diff=versionArray1[idx].length()-versionArray2[idx].length())==0//先比較長度
&&(diff=versionArray1[idx].compareTo(versionArray2[idx]))==0){//再比較字符
++idx;
}
//如果已經(jīng)分出大小,則直接返回,如果未分出大小,則再比較位數(shù),有子版本的為大;
diff=(diff!=0)?diff:versionArray1.length-versionArray2.length;
returndiff;
}
- 注意:其中split 方法入?yún)檎齽t匹配表達(dá)式,不能用"."("."在正則表達(dá)式里匹配任何值),需要用".",才算是按點(diǎn)號分割;
這樣,先分割成子串?dāng)?shù)組,再挨個比較子版本號,比較子版本號時(shí),先比較位數(shù),位數(shù)大的就大,位數(shù)一樣時(shí)再按字符串比較方式比較;
如果全部比較完(其中一個版本號比較完)之后,再看一下哪個版本號有更更多的子版本號,也就是分割后的數(shù)組長度,有子版本號的為大;
這樣就比較完善地考慮了各種情況,并比較出版本號大小;包括有字母后綴的也可以使用;
如"9.9", "10.8.8.6" ,如果直接按字符串比較,則會前者大,后者小,而明顯是錯誤的;分割后比較第一個主版本9與10,從位數(shù)上,就已經(jīng)得出結(jié)果后者大;
再如"9.9b", "9.8a" 等也適用,如果用轉(zhuǎn)換成int或者double的方法就不適用;
- 1微商經(jīng)驗(yàn)分享:如何做好微信營銷
- 2免費(fèi)微信營銷軟件與交際時(shí)代報(bào)不同的地方有哪幾種?
- 3微信營銷之朋友圈,何時(shí)何地該發(fā)什么內(nèi)容?
- 4域名與網(wǎng)站之間的排名關(guān)系
- 5微信導(dǎo)航:《諾亞傳說》關(guān)注有禮,游戲周邊輕松拿
- 6網(wǎng)站更換域名應(yīng)該注意的八個方面
- 7手把手教你如何做好微營銷【領(lǐng)航電商】
- 8免費(fèi)微信營銷軟件與外交雜志皆不同的地方有哪一些?
- 9臨沂APP開發(fā)之未來方向
- 10少發(fā)9%漸成明日黃花 短信被微信逼成困獸
- 11微信營銷方案分享
- 12微信開店應(yīng)用大比拼 看看門檻費(fèi)哪家更劃算
- 13臨沂企業(yè)APP的四大作用
- 14微信導(dǎo)航:長沙墜井女孩搜尋未果 最后微信“好冷啊”
- 15海義科技:征服吃貨,文案是道開胃菜
- 16以“微”解“?!?南寧鐵路警察巧用微信護(hù)平安
- 17企業(yè)網(wǎng)站的宣傳優(yōu)勢
- 18十二則技巧讓Excel操作效率提高
- 19SQL去除重復(fù)記錄
- 20玩好微信營銷掙錢很容易
- 21做微信營銷的產(chǎn)品,宜精不宜多
- 22免費(fèi)微信營銷軟件與交際時(shí)代報(bào)不一樣的能力有哪幾種?
- 23微信群發(fā)軟件與社交媒體各不同的地方有哪幾種?
- 24湖州網(wǎng)絡(luò)公司:告訴您網(wǎng)絡(luò)推廣的方法
- 25免費(fèi)微信營銷軟件與酬酢BBC各不同的功能有哪一些?
- 26微信公共平臺導(dǎo)航:微信還有一顆圖片社交的心
- 27感覺用路由器上網(wǎng)變慢怎么辦
- 28為什么網(wǎng)站的打開速度會很慢?
- 29微信將推出信息流廣告 一個有待挖掘的大金礦
- 30中小企業(yè)建站應(yīng)注意的幾個問題
成都公司:成都市成華區(qū)建設(shè)南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓