image.png

思路

  • 直接找到.的位置,将切割出前面的字符串,将其转换为数字再进行比较

    代码

    1. public int compareVersion(String version1, String version2) {
    2. return recur(version1, 0, version2, 0);
    3. }
    4. public int recur(String version1, int startI, String version2, int startJ) {
    5. if (startI >= version1.length() && startJ >= version2.length()) return 0;
    6. int i = 0, j = 0;
    7. for (i = startI; i < version1.length(); i++) {
    8. if (version1.charAt(i) == '.') break;
    9. }
    10. for (j = startJ; j < version2.length(); j++) {
    11. if (version2.charAt(j) == '.') break;
    12. }
    13. Integer s1 = startI >= version1.length() ? 0 :
    14. Integer.valueOf(version1.substring(startI, i));
    15. Integer s2 = startJ >= version2.length() ? 0 :
    16. Integer.valueOf(version2.substring(startJ, j));
    17. if (s1 == s2) return recur(version1, i + 1, version2, j + 1);
    18. return s1 > s2 ? 1 : -1;
    19. }

    比较版本号