본문 바로가기

Programming/Java

[Java] 버전 크기를 비교하는 코드 만들기 (Semantic version)

728x90

1.5.1, 1.5.7과 같이 Semantic version으로 구성된 버전의 크기 비교하는 자바 코드 입니다.

 

public class VersionComparisonExample {

    public static void main(String[] args) {

        String v1 = "1.5.1";
        String v2 = "1.5.7";

        String[] arr1 = v1.split("\\.");
        String[] arr2 = v2.split("\\.");

        int i = 0;
        while (i < arr1.length || i < arr2.length) {
            if (i < arr1.length && i < arr2.length) {
                if (Integer.parseInt(arr1[i]) < Integer.parseInt(arr2[i])) {
                    System.out.println(v2 + " is greater than " + v1);
                    return;
                } else if (Integer.parseInt(arr1[i]) > Integer.parseInt(arr2[i])) {
                    System.out.println(v1 + " is greater than " + v2);
                    return;
                }
            } else if (i < arr1.length) {
                if (Integer.parseInt(arr1[i]) != 0) {
                    System.out.println(v1 + " is greater than " + v2);
                    return;
                }
            } else if (i < arr2.length) {
                if (Integer.parseInt(arr2[i]) != 0) {
                    System.out.println(v2 + " is greater than " + v1);
                    return;
                }
            }

            i++;
        }

        System.out.println(v1 + " and " + v2 + " are equal");
    }
}

 

  • 위 코드는 먼저 입력된 버전 문자열을 .을 구분자로 나누어 배열에 저장합니다.
  • 배열의 원소를 하나씩 비교하며, 만약 같은 자리 수에서 버전이 다르다면 해당 버전이 더 높다는 것을 결론으로 출력합니다.
  • 1.5.1보다 1.5.7이 더 높은 버전이므로, 위 코드는 1.5.7 is greater than 1.5.1을 출력합니다.
728x90

'Programming > Java' 카테고리의 다른 글

[Java] 다형성  (0) 2023.02.24
[Java] 팩토리얼 계산하는 코드 만들기  (0) 2023.02.23
map과 list 중 검색 속도가 빠른 것은?  (0) 2023.02.23
HashMap과 시간 복잡도  (0) 2023.02.23
ConcurrentModificationException  (0) 2023.02.23