比較帯点(.)バージョン番号のサイズ

1096 ワード

朝、残された古いシステムで、既存の著者がバージョン更新を実現するサービスで、2つの文字列(1つのクライアントが収集したバージョン情報、もう1つのデータベースから最新のバージョン番号を取得する)が等しいかどうかを直接比較することで、更新の有無を判断するのを見た.この方法では、構成エラーのため、ダウンロードされたモバイルクライアントのバージョン番号がデータベースのバージョン番号よりも新しい場合、ダウンロードがプロンプトされます.さらに深刻なのは、ダウンロードインストールが完了した後でも、アプリケーションが起動している場合は更新がチェックされ、更新が繰り返されるという問題です.
この問題を解決するには、(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{
			//      
		}