본문 바로가기
IT/Java

자바 문자열 비교 compareTO

by 성준하이 2022. 7. 31.
반응형

프로그래밍 언어 별로 값을 비교하는 메서드들이 존재한다.

 

integer 의 값은 값별로 뭐가 크고 작은 값인지 비교가 확실한데 string 일 경우엔 어떻게 비교가 될까?

 

이럴때 사용하는 메서드가 compareTo 이다.

 

어떻게 비교가 되는지 살펴보면 다음과 같다.

 

  • int compareTo(NumberSubClass referenceName)  
  • int compareTo(String anotherString)
  • compareTo() 함수는 두개의 값을 비교하여 int 값으로 반환해주는 함수이다. 


compareTo() 함수에는 위에서 설명하는바와 같이 "문자열의 비교" 와 "숫자의 비교" 두 방식이 존재한다. 

숫자의 비교 같은 경우는 단순히 크다(1), 같다(0), 작다(-1) 의 관한 결과값을 리턴해주는 반면 
문자열의 비교 같은 경우는 같다(0), 그 외 양수/음수값 을 반환해준다.

 

문자열을 좀더 자세히 코드로 보여주면 다음과 같다.

 String str = "abcd";

 // 1) 비교대상에 문자열이 포함되어있을 경우
 System.out.println( str.compareTo("abcd") );  // 0 (같은 경우는 숫자나 문자나 0을 리턴)
 System.out.println( str.compareTo("ab") );  //  2
 System.out.println( str.compareTo("a") );  //  3
 System.out.println( str.compareTo("c") );  //  -2       
 System.out.println( "".compareTo(str) );  //  -4

 // 2) 비교대상과 전혀 다른 문자열인 경우
 System.out.println( str.compareTo("zefd") );  //  -25
 System.out.println( str.compareTo("zEFd") );  //  -25
 System.out.println( str.compareTo("ABCD") );  //  32
반응형

'IT > Java' 카테고리의 다른 글

mybatis에서 <![CDATA[ ]]> 사용 이유  (52) 2022.08.02
시간복잡도 계산  (65) 2022.08.01
Map, Set, List 에 대해서  (40) 2022.07.30
배열의 복사(깊은복사, 얕은복사)  (60) 2022.07.29
@Autowired 대신 @RequiredArgsConstructor  (48) 2022.07.26

댓글