JAVA

[JAVA] compareTo 함수 (숫자/문자 비교)

nang. 2020. 12. 28. 23:22
반응형
SMALL

1. 숫자 비교

기준값.compareTo(비교값);
  • 기준값 == 비교값

    • 0 반환
  • 기준값 > 비교값

    • 1 반환
  • 기준값 < 비교값

    • -1 반환
Integer a = 7;
Integer b = 3;

a.compareTo(b);

>> 1

 

int형 선언으로는 안되나?

  • compare() 사용

    int a = 7;
    int b = 3;
    
    Integer.compare(x, y);



2. 문자 비교

  • 같으면

    • 0 반환
  • 다르면

    • 다른 문자의 개수만큼 리턴
      • 근데 기준값과 비교값이 앞에서부터 동일한 문자가 나와야만 다른 문자 개수만큼 리턴이 가능
        String str = "abcd";
        
        str.compareTo("ab");
        >> 4 - 2 = 2
        
        str.compareTo("c");
        >> -2
        >> ?

         

위 코드의 두번째 예제는 왜 -2인가?

기준값과 비교값이 앞에서부터 동일한 문자가 아니고 중간에 같은 문자일 경우 각각의 문자열에서 가장 낮은 아스키코드의 차이값을 리턴 하기 때문
String str = "abcd";

str.compareTo("c");
>> 각각 문자열의 가장 낮은 아스키코드 문자 : a와 c
>> 97 - 99 = -2

 

  • 대소문자도 구분하여 비교함
반응형
LIST

'JAVA' 카테고리의 다른 글

[JAVA] 우선순위큐 PriorityQueue 사용하기  (0) 2020.12.29
[JAVA] Queue 관련 함수 (+ 함수 차이점)  (0) 2020.12.26
[JAVA] Arrays.fill 함수  (0) 2020.04.16
BigInteger 클래스  (0) 2019.10.02