java的版本號比較算法


題目:

Compare two version numbers vresion1 and version2

if version1>version2 return 1,if version1<version2 return -1,otherwise return 0.

思路:

① 1.0和1是一個版本,長度不一樣,要檢查一下“.”后面的是否是0;

②1.2小於1.12;

③通過字符串拆分成兩段,判斷前段是否相等,如果相等就判斷小數點后面是否相等

代碼:

 1 public class CompareVersionNumbers {
 2 
 3     public static int compareVersion(String version1, String version2) {
 4         String[] s1 = version1.split("\\."); //通過\\將.進行轉義
 5         String[] s2 = version2.split("\\.");
 6         int len1 = s1.length;
 7         int len2 = s2.length;
 8         int i, j;
 9         for (i = 0, j = 0; i < len1 && j < len2; i++, j++) {
10             if (Integer.parseInt(s1[i]) > Integer.parseInt(s2[j])) {
11                 return 1;
12             } else if (Integer.parseInt(s1[i]) < Integer.parseInt(s2[j])) {
13                 return -1;
14             }
15         }
16         while (i < len1) {
17             if (Integer.parseInt(s1[i]) != 0) {
18                 return 1;
19             }
20             i++;
21         }
22         while (j < len2) {
23             if (Integer.parseInt(s2[j]) != 0) {
24                 return -1;
25             }
26             j++;
27         }
28         return 0;
29     }
30 
31     public static void main(String[] args) {
32         int ret = compareVersion("1.0", "1");
33         System.out.println(ret);
34     }
35 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM