程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 應用Java代碼來比擬Android客戶端版本號

應用Java代碼來比擬Android客戶端版本號

編輯:關於JAVA

應用Java代碼來比擬Android客戶端版本號。本站提示廣大學習愛好者:(應用Java代碼來比擬Android客戶端版本號)文章只能為提供參考,不一定能成為您想要的結果。以下是應用Java代碼來比擬Android客戶端版本號正文


症結點

    為何不克不及應用String.compareTo辦法來比擬客戶端版本號?

    舉個例子,之前客戶端版本號為:9.9.9,而辦事器端最新的客戶端版本號為:10.0.1,固然10.0.1顯著高於9.9.9,然則依照compareTo辦法,這個9.9.9是年夜於10.0.1的,招致客戶端版本號比擬毛病。

Java代碼完成

扯了一些,最初照樣要show一下代碼的,以下是我的客戶端版本號比擬代碼,迎接吐槽。

   

 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;
    }
  }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved