
equals()
&
equalsIgnoreCase()
equals() / equalsIgnoreCase()
우리는 숫자형을 비교할 때 == 을 사용해서 비교한다.
단, String 타입은 equals() 혹은 equalsIgnoreCase()를 사용하여 비교해 true 혹은 false를 반환한다.
그리고 equals()는 대소문자를 구별해서 비교하며, equalsIgnoreCase()는 대소문자를 구별하지 않고 비교한다.
추가로, equals()는 Object 타입도 비교가 가능하지만 equalsIgnoreCase()는 오로지 String 끼리만 비교할 수 있다.
(대소문자의 개념은 String에만 있기 때문!)
사용법은 예시에서 간단하게 나타내보겠다.
class test {
public static void main(String[] args) {
String str1 = "Hello Java!!"; // 대문자
String str2 = "hello java!!"; // 소문자
System.out.println(str1.equals(str2)); // 대소문자 구별
System.out.println(str1.equalsIgnoreCase(str2)); // 대소문자 구별 X
}
}
출력
false
true
contentEquals()
equals와 equalsIgnoreCase가 String 타입의 객체를 비교할 때 쓰였다면,
contentEquals는 String과 StringBuffer 혹은 StringBuilder를 비교할 수 있게해준다.
사용법은 똑같으며 예시를 보겠다.
class test {
public static void main(String[] args) {
String str = "Hello Java!!";
StringBuffer sBuffer = new StringBuffer("Hello Java!!");
StringBuilder sBuilder = new StringBuilder("Hello Java!!");
System.out.println("str.equals(sBuffer) = " + str.equals(sBuffer));
System.out.println("str.equals(sBuilder) = " + str.equals(sBuilder));
System.out.println("str.contentEquals(sBuffer) = " + str.contentEquals(sBuffer));
System.out.println("str.contentEquals(sBuilder) = " + str.contentEquals(sBuilder));
}
}
출력
str.equals(sBuffer) = false
str.equals(sBuilder) = false
str.contentEquals(sBuffer) = true
str.contentEquals(sBuilder) = true
String과 StringBuffer, StringBuilder를 equals로 비교할때는 false이다.
반면, contentEquals로 비교할 때 반환값이 true인 것을 통해 둘의 차이를 알 수 있다.
한가지 주의할건 contentEquals에서 대소문자가 다르다면 false를 반환한다는 점을 명심하자.
'자바' 카테고리의 다른 글
[자바] 기수정렬 (Radix sort) 개념과 구현 (0) | 2022.07.06 |
---|---|
[자바] Math 클래스의 여러가지 메서드를 알아보자. (ceil & floor & round & pow & sqrt & abs) (0) | 2022.07.01 |
[자바] 공백 제거하기 (trim & replaceAll) (0) | 2022.06.26 |
[자바] indexOf와 lastIndexOf의 사용법 (0) | 2022.06.26 |
[자바] toCharArray() 메서드를 이용해서 문자열을 뽑아보자 (0) | 2022.06.26 |