개발노트

compareTo 본문

Programming/JAVA

compareTo

dev? 2022. 5. 9. 20:26
반응형

compareTo()

- 2개의 값을비교하여 int형으로 결과를 반환해주는 함수이다. 

- 문자열의 비교 / 숫자의 비교 방식이 존재한다. 

기준값.compareTo(비교값)

 


1. 숫자형 비교

기준값 = 비교대상 
0
기준값 < 비교대상
-1
기준값 > 비교대상
1
/* Wrapper Class인 경우*/
Integer A = 1; 
Integer B = 2; 

System.out.println( A.compareTo(B) ); // -1 :작다
System.out.println( A.compareTo(1) ); // 0 :같다
System.out.println( A.compareTo(2) ); // 1 :크다
/* int 대상인 경우*/
int A = 1;
int B = 2;

Integer.compare(A,B);

 

2. 문자열 비교

1) 비교대상에 문자열이 포함되어있을경우

// 1) 비교대상에 문자열이 포함되어있을 경우
String str = "abcd";
System.out.println( str.compareTo("abcd") ); // 결과: 0 (기준값 == 비교대상)
String str = "abcd";
System.out.println( str.compareTo("ab") ); // 결과: 2
System.out.println( str.compareTo("a") ); //  결과: 3

※ str.compareTo("ab") 값이 2가 나온 이유
= 기준값에 비교대상이 포함되어있을 경우 서로의 문자열 길이의 차이값을 리턴해주기 때문이다.
("abcd"에 "ab"가 포함되어 있으므로 문자열 길이의 차이값인 '2'가 나온다)

"abcd"  - "ab" = 2
      4   -  2   = 2
"abcd"  - "a"  = 3
       4  -  1   =  3
String str = "abcd";
System.out.println( str.compareTo("c") ); // 결과: -2
System.out.println( "".compareTo(str) ); // 결과: -4

※ str.compareTo("c") 값이 -2가 나온 이유

= comparTo는 같은 위치의 문자만 비교하기 때문에
맨 앞('a')에서 불일치 하기 때문에 아스키값으로 비교처리를 한다.

('a'의 아스키코드 값은 97, 'c'의 아스키코드 값은 99 이므로 차이인 -2가 리턴된다.)

 

 

2) 비교대상과 전혀 다른 문자열인 경우

// 2) 비교대상과 전혀 다른 문자열인 경우 
String str = "abcd";

System.out.println( str.compareTo("zefd") ); // -25 
System.out.println( str.compareTo("zEFd") ); // -25 
System.out.println( str.compareTo("ABCD") ); // 32

 

 

 

 

 

https://mine-it-record.tistory.com/133

 

[JAVA] 자바_compareTo ( 값 [문자열/숫자] 비교 )

- 자바 compareTo - -마지막 수정날짜 : 2021-01-01- 과거 기록한 글이나 보기 힘든 부분도 있고 잘못 작성된 부분이 있어 내용 일부분 수정하였습니다. (잘못된 내용이 있는부분 적어주시면 바로바로

mine-it-record.tistory.com

https://yuja-kong.tistory.com/172

 

[Java] compareTo 숫자, 문자열 비교

[Java] compareTo 숫자, 문자열 비교 compareTo int compareTo(NumberSubClass referenceName) int compareTo(String anotherString) 두 개의 값을 비교하여 int값으로 반환해주는 함수이다. 문자열의 비교..

yuja-kong.tistory.com

 

반응형

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

컬렉션 프레임워크 (Collection Framework)  (0) 2022.05.11
Wrapper 클래스 / 보조 스트림  (0) 2022.05.10
Comparator - compare / compareTo  (0) 2022.05.08
String 클래스  (0) 2022.05.07
Singleton 패턴  (0) 2022.05.06