比較帯点(.)バージョン番号のサイズ
1096 ワード
朝、残された古いシステムで、既存の著者がバージョン更新を実現するサービスで、2つの文字列(1つのクライアントが収集したバージョン情報、もう1つのデータベースから最新のバージョン番号を取得する)が等しいかどうかを直接比較することで、更新の有無を判断するのを見た.この方法では、構成エラーのため、ダウンロードされたモバイルクライアントのバージョン番号がデータベースのバージョン番号よりも新しい場合、ダウンロードがプロンプトされます.さらに深刻なのは、ダウンロードインストールが完了した後でも、アプリケーションが起動している場合は更新がチェックされ、更新が繰り返されるという問題です.
この問題を解決するには、(1)クライアントとデータベースがバージョン番号とバージョンコードを維持し、バージョン番号は表示に使用され、バージョンコードはバージョンサイズの比較に使用されます.この方法は簡単で、数値サイズを比較すればいいです.
(2)比較帯点(.)バージョン番号文字列のサイズ.このやり方は比較的直接的で、この文字のテーマでもある.コードを抽出して共有します.
この問題を解決するには、(1)クライアントとデータベースがバージョン番号とバージョンコードを維持し、バージョン番号は表示に使用され、バージョンコードはバージョンサイズの比較に使用されます.この方法は簡単で、数値サイズを比較すればいいです.
(2)比較帯点(.)バージョン番号文字列のサイズ.このやり方は比較的直接的で、この文字のテーマでもある.コードを抽出して共有します.
int result = 0;
byte[] b1 = "1.2".getBytes("utf-8");
byte[] b2 = "1.2.6".getBytes("utf-8");
if(b1.length >= b2.length){
for(int i = 0,len = b2.length; i < len; i++){
result |= Byte.valueOf(b1[i]).compareTo(Byte.valueOf(b2[i]));
}
}else if(b1.length < b2.length){
for(int i = 0,len = b1.length; i < len; i++){
result |= Byte.valueOf(b1[i]).compareTo(Byte.valueOf(b2[i]));
}
if(result == 0){// ,
result = -1;
}
}
if(result >= 0){
//>0 ,=0
}else{
//
}