블로그 이름

[JAVA] 'A.B.C' 형태 버전 비교하는법 본문

개발/Java

[JAVA] 'A.B.C' 형태 버전 비교하는법

Hide 2024. 11. 5. 18:26

'1.2.3' 버전과 '1.2.11' 버전 중 어떤 버전이 우선인지 비교해야 하는데

.이 많으면 int로 변환이 안된다.

 

때문에 . 으로 split 하여 비교해야한다.

 

 

// 현재 버전이 비교할 버전보다 높거나 같으면 true, 작으면 fasle를 리턴
public boolean getVersionUp(String now, String compare){

    // 각각의 버전을 split으로 String배열에 담는다
String[] nowArray = new String[]{};
if(!"".equals(now) && now != null ){
nowArray = now.split("\\.");
}

String[] compareArray = new String[]{};
if(!"".equals(compare) && compare != null ){
compareArray = compare.split("\\.");
}

// 비교할 버전이 없다면 false
if(nowArray.length == 0 || compareArray.length == 0) return false;

// 비교할 버전들 중 버전 길이가 가장 작은 버전을 구함
int minLength = nowArray.length;
if(minLength > compareArray.length){
minLength = compareArray.length;
}

    /* 반복을 통해 A B C 순으로 비교하며 기존의 버전이 비교할 버전보다 
       크거나 같으면 true, 작을 경우 false를 리턴. */ 
for(int i=0; i<minLength; i++){
        int nowSplit = Integer.parseInt(nowArray[i]);
        int compareSplit = Integer.parseInt(compareArray[i]);
        if(nowSplit > compareSplit){
            return true;
        }else if(nowSplit == compareSplit){
            continue;
        }else if(nowSplit < compareSplit){
            return false;
        }
    }

return true;
}