// 비교를 할 대상이 되는 문장
String level = "과장";

// 다음의 세가지 String 중에 하나랑만 맞다면 어떤 값이 반환될까
String kg = "과장";
String dr = "대리";
String sw = "신입";

 

Java 에서 String을 비교할 수 있는 기능으로는 compareTo와 equals가 있는데

 

실제 예제에 사용하면서 헷갈린 점이 있어서 확실히 구분하고자 간단히 남겨본다.

 

먼저 결론을 이야기하자면 compareTo의 반환값은 Int 이다.

굳이 int로 형변환을 거치지 않더라도

예를 들어서 저 위에 정의한 둘을 비교하자면

 

kg.compareTo(level)

kg.equals(level));

이런 식으로 level과 kg를 비교할 수 있게 되었다.

그러면 이 둘의 출력 값을 비교해보자.

 

System.out.println(kg.compareTo(level));
System.out.println(dr.compareTo(level));

System.out.println((int)kg.compareTo(level));
System.out.println((int)dr.compareTo(level));

System.out.println(kg.equals(level));
System.out.println(dr.equals(level));

이런 식으로 출력값을 본다면

 

0
1540

0
1540

true
false

 

console. 출력값

은 이런 식으로 나오게 된다.

 

 

compareTo는 형변환을 거치지 않아도 그 자체로 int이며

 

equals는 진위형(boolean)의 형태로 반환되는 것을 볼 수 있다.

 

이를 이용해서 equals는 반환값이 boolean 인 것을 이용해서 그 자체를 조건문의 조건에 대입해도 괜찮지만

 

compareTo는 == 0 과 같이 비교연산자를 붙여줘야 조건문에 사용할 수 있게 된다.

 

 

필자가 Java에서 배운 개념들을 조건문에 사용해보려다가 겪은 시행 착오 덕분에 이 포스팅을 하게 되었습니다...

 

+ Recent posts