compareTo
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