본문 바로가기
[개발] Programming/Java

자바 문자열 비교 함수 compare(), compareTo()

by eatyourKimchi 2018. 11. 9.

 

compareTo()

 

: 문자열의 사전순 값을 비교하여 그에 해당되는 int 값을 리턴한다. 

 

예로 A > B 라고 가정하면,

- A = A  =  0 (동일한 경우) 

- A > B  =  1 (좌측 값이 큰 경우) 

- B > A  = -1 (좌측 값이 작은 경우) 

 

예제 소스

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public void test(){ 
 
    String str1 = "AA"
 
    String str2 = "AA"
 
    String str3 = "BB"
 
    System.out.println(str1.compareTo(str2));  // 결과  0 
 
    System.out.println(str2.compareTo(str3));  // 결과 -1 
 
    System.out.println(str3.compareTo(str2));  // 결과  1 
 
cs

 

 

 

 

compare() 

 

: Comparator 인터페이스를 구현할 때 작성해야하는 메서드이다.

실제로 구현할 때 compare()에 2개의 인자를 넘겨 내부에 구현에 따라 int 결과 값을 리턴한다.

 

예를 들면 아래와 같이 구현하여 사용할 수 있다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@Override
public int compare(인자1, 인자2){
 
    if(인자1 > 인자2){
 
      return 1;
 
    }else if(인자1 < 인자2){
 
      return -1;
 
    }else{
 
      return 0;
 
    }
 
}
cs

 

 

 

 

특징

 

유사점

- 둘 다 두 객체를 비교하는 맞춤 방식이다. 

- 둘 다 두 객체 간의 관계를 설명하는 int 를 반환한다.

 

차이점

- compare() 메서드는 Comparator 인터페이스를 구현할 때 구현해야하는 메서드다. 

- 메소드에 두 개의 객체를 전달할 수 있으며, 관계를 설명하는 int 를 반환한다.

 

 

 

출처

 

https://code.i-harness.com/ko-kr/q/6697f

https://blog.naver.com/PostView.nhn

 

댓글