코딩 개발/Java

[Java] compareTo 함수(문자, 숫자 사전적 비교)

호소세 2024. 3. 11. 08:54
728x90
반응형

compareTo 메서드

compareTo 메서드는 Java의 Comparable 인터페이스를 구현한 클래스에서 사용할 수 있는 메서드로, 두 객체를 비교하여 순서를 결정합니다. String 클래스는 Comparable 인터페이스를 구현하고 있으므로 문자열 간의 비교에 사용할 수 있습니다. 이 메서드는 다음과 같은 규칙에 따라 비교를 수행합니다:

  1. 비교 대상인 두 문자열을 비교합니다.
  2. 첫 번째 문자열이 두 번째 문자열보다 사전적으로 앞에 올 경우, 음수를 반환합니다.
  3. 첫 번째 문자열이 두 번째 문자열보다 사전적으로 뒤에 올 경우, 양수를 반환합니다.
  4. 두 문자열이 사전적으로 동일한 경우, 0을 반환합니다.

예시

public class CompareExample {
    public static void main(String[] args) {
        String str1 = "apple";
        String str2 = "banana";

        int result = str1.compareTo(str2);
        if (result < 0) {
            System.out.println(str1 + " comes before " + str2);
        } else if (result > 0) {
            System.out.println(str1 + " comes after " + str2);
        } else {
            System.out.println(str1 + " is equal to " + str2);
        }
    }
}

 

1. "apple"과 "banana"라는 두 문자열을 비교합니다.

2. compareTo 메서드는 "apple"이 "banana"보다 사전적으로 앞에 올 것으로 판단하여 음수를 반환합니다. 따라서 결과는 "apple comes before banana"(1번)이 됩니다.

 

* 주의할 점 : compareTo 메서드는 대소문자를 구분하여 비교하므로 대문자가 소문자보다 사전적으로 앞에 옵니다.

 

소감

개발할 때는 객체 값이나 멤버 변수의 값 비교를 많이 하게 되는데... 현실 세계에서는 비교를 하지 않아야 행복한 삶을 살 수 있더라고요.

요새는 SNS의 발달로 다른 사람의 행복한 모습을 보며 '나의 인생은 왜 이러지'라는 생각을 하게 되는데 그러지 않기 위해 노력해야 한다고 생각합니다.

행복한 나라가 되어야 더 멋진 미래가 기다리는 국가가 되지 않을까 생각합니다.

반응형