// 비교를 할 대상이 되는 문장
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에서 배운 개념들을 조건문에 사용해보려다가 겪은 시행 착오 덕분에 이 포스팅을 하게 되었습니다...
'코딩이야기 > JAVA' 카테고리의 다른 글
[JAVA] java.lang.NullPointerException 에러 (0) | 2022.10.31 |
---|---|
[Java] class 클래스에서 생성자(Constructor)와 this의 사용(1) (0) | 2022.10.12 |
[연습문제 풀이] programmers 코딩테스트 연습 옹알이 문제 풀이 (0) | 2022.10.06 |
[연습문제] 피자 나눠 먹기, while문, 나눗셈(나누기) 연산("/") (2) | 2022.10.05 |
[Java] for문과 while문 (반복 실행문/반복문) 그리고 break와 continue (0) | 2022.10.04 |