반응형

# equals

  • 자바에서 문자열 비교 시 사용하는 함수로 모든 객체의 부모 클래스인 Object에 정의되어있는 메소드 중 하나이다.
// String.java
public boolean equals(Object anObject) {
    if (this == anObject) {
        return true;
    }
    if (anObject instanceof String) {
        String anotherString = (String)anObject;
        int n = value.length;
        if (n == anotherString.value.length) {
            char v1[] = value;
            char v2[] = anotherString.value;
            int i = 0;
            while (n-- != 0) {
                if (v1[i] != v2[i])
                    return false;
                i++;
            }
            return true;
        }
    }
    return false;
}

## 사용방법

  • 아래와 같이 사용하여 두 개의 문자열이 동일한지 비교 가능하며, 객체의 순서를 바꿔도 동일한 결과를 얻을 수 있다.
  • 결과는 true or false 반환.
string str1 = "문자열비교";
string str2 = "문자열비교";

str1.equals(str2)
str2.equals(str1)

## 주의할 점 (NullPointerException)

  • 아래와 같이 객체 str1이 null인 경우 NullPointerException 발생.
String str1 = null;
String str2 = "str1이널값인경우";

str1.equals(str2);

=>
오류발생.
  • 인자로 전달되는 str2가 null 인 경우에는 NullPointerException  발생하지 않음.
String str1 = "str2이널값인경우";
String str2 = null;

str1.equals(str2);
  • null 여부를 신경쓰고 싶지 않은 경우 Objects.equals() 또는 StringUtils.equals() 사용.
반응형

'기타' 카테고리의 다른 글

스크럼(Scrum)  (0) 2022.11.23
Java 보안으로 차단된 응용 프로그램 해결방법  (0) 2022.11.10
DB2 근속일수 등 날짜의 차이 일수 구하기  (0) 2022.11.01
SQL ROW_NUMBER  (0) 2022.10.31
DB2 length  (0) 2022.10.26

+ Recent posts